为什么我直接在servlet里面直接输出message不乱码,而跳转到web页面就出现乱码,而且存到数据库的也是乱码,我尝试了网上的各种方法,还是不成功。。
生活随笔
收集整理的這篇文章主要介紹了
为什么我直接在servlet里面直接输出message不乱码,而跳转到web页面就出现乱码,而且存到数据库的也是乱码,我尝试了网上的各种方法,还是不成功。。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么我直接在servlet里面直接輸出message不亂碼,而跳轉到web頁面就出現亂碼,而且存到數據庫的也是亂碼,我嘗試了網上的各種方法,還是不成功。。
public class HandleRegister extends HttpServlet { public void init(ServletConfig config) throws ServletException{ super.init(config);try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}catch(Exception e){} }public String handleString(String s){ try{ byte bb[]=s.getBytes("iso-8859-1");s=new String(bb);}catch(Exception ee){} return s; }public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ response.setHeader("content-type","text/html;charset=UTF-8");PrintWriter out=response.getWriter();Connection con; PreparedStatement sql;Register reg=new Register(); request.setAttribute("register",reg);String logname=request.getParameter("logname").trim(),password=request.getParameter("password").trim(),sex=request.getParameter("sex").trim(),email=request.getParameter("email").trim(),phone=request.getParameter("phone").trim(),message=request.getParameter("message");message= new String( message.getBytes("ISO-8859-1"),"gb2312");out.println(message);sex= new String( sex.getBytes("ISO-8859-1"),"gb2312");out.println(sex);int age=Integer.parseInt(request.getParameter("age").trim());String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Student";if(logname==null)logname="";if(password==null)password="";boolean isLD=true;for(int i=0;i<logname.length();i++){ char c=logname.charAt(i);if(!((c<='z'&&c>='a')||(c<='Z'&&c>='A')||(c<='9'&&c>='0'))) isLD=false;} boolean boo=logname.length()>0&&password.length()>0&&isLD;String backNews="";try{ con=DriverManager.getConnection(uri,"sa","sa");String insertCondition="INSERT INTO member VALUES (?,?,?,?,?,?,?,?)";sql=con.prepareStatement(insertCondition);if(boo){ sql.setString(1,handleString(logname));sql.setString(2,handleString(password));sql.setString(3,handleString(sex));sql.setInt(4,age);sql.setString(5,phone);sql.setString(6,email);sql.setString(7,handleString(message));sql.setString(8,"public.jpg");int m=sql.executeUpdate();if(m!=0){ backNews="注冊成功";reg.setBackNews(backNews);reg.setLogname(logname);reg.setPassword(handleString(password));reg.setAge(age);reg.setSex(handleString(sex));reg.setEmail(handleString(email));reg.setPhone(phone);reg.setMessage(handleString(message));}}else{ backNews="信息填寫不完整或名字中有非法字符";reg.setBackNews(backNews); }con.close();}catch(SQLException exp){ backNews="該會員名已被使用,請您更換名字"+exp;reg.setBackNews(backNews); }RequestDispatcher dispatcher= request.getRequestDispatcher("/ptext/User/showRegisterMess.jsp");dispatcher.forward(request, response);}public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doPost(request,response);} }jsp頁面:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>無標題文檔</title> <%request.setCharacterEncoding("gb2312");%> </head><BODY><Font size=2> <CENTER> <FORM action="helpRegister" name=form method="post"> <BR>輸入您的信息,會員名字必須由字母和數字組成,帶*號項必須填寫。 <table><tr><td>會員名稱:</td> <td><Input type=text name="logname" >*</td></tr><tr><td>設置密碼:</td><td><Input type=password name="password">*</td></tr><tr><td>性別:</td><td><Input type=radio name="sex" checked="o" value="男">男<Input type=radio name="sex" value="女">女</td></tr><tr><td>會員年齡:</td><td><Input type=text name="age" value="0"></td></tr><tr><td>電子郵件:</td><td><Input type=text name="email"></td></tr><tr><td>聯系電話:</td><td><Input type=text name="phone"></td></tr></table><table><tr><td>輸入您的個人簡介:</td></tr><tr><td><TextArea name="message" Rows="6" Cols="30"></TextArea></td></tr><tr><td><Input type=submit name="g" value="提交"></td> </tr> </table> </Form></CENTER> </BODY> </html>顯示頁面:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>無標題文檔</title> <%@ page import="mybean.data.Register"%> <jsp:useBean id="register" type="mybean.data.Register" scope="request" /> </head> <BODY bgcolor=cyan><Font size=2> <CENTER><Font size=4 color=blue > <jsp:getProperty name="register" property="backNews" /></Font> <Font size=2><table><tr><td>注冊的會員名稱:</td><td><jsp:getProperty name="register" property="logname" /></td></tr><tr><td>注冊的性別:</td> <td><jsp:getProperty name="register" property="sex" /></td></tr><tr><td>注冊的會員年齡:</td><td><jsp:getProperty name="register" property="age" /></td></tr><tr><td>注冊的電子郵件:</td><td><jsp:getProperty name="register" property="email" /></td></tr><tr><td>注冊的聯系電話:</td><td><jsp:getProperty name="register" property="phone" /></td></tr> </table><table><tr><td>您輸入的個人簡介:</td></tr><tr><td><TextArea name="message" Rows="6" Cols="30"> <jsp:getProperty name="register" property="message" /></TextArea></td></tr> </table> </FONT></CENTER> </BODY> </html>總結
以上是生活随笔為你收集整理的为什么我直接在servlet里面直接输出message不乱码,而跳转到web页面就出现乱码,而且存到数据库的也是乱码,我尝试了网上的各种方法,还是不成功。。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实战_05_SpringBoot整合re
- 下一篇: Jenikns新建节点、配置节点、新建任