6 Servlet——Service()方法逻辑流程与Response对象与处理乱码
Service()方法逻辑流程
- 设置请求编码格式(处理中文乱码)
- 方法一:使用String类转码:xx = new String(xx.getBytes("iso8859-1"),"utf-8");其中xx表示已经获得的请求参数,也就是说,对于需要转码的参数,单独使用此方法进行转码。
- 方法二:对get和post方法获得的数据配置
- 步骤一:req.setCharacterEncoding("utf-8");
- 步骤二:在tomcat的目录下的conf目录中修改server.xml文件:在Connector标签属性中增加useBodyEncodingForURI="true"
- 注意:如果只做步骤一,post方式的数据将得到转码,但get方式的数据不会。
- 设置响应编码格式(使用setContentType())
- 获取请求数据(Request对象)
- 处理请求数据
- 数据库操作(MVC思想)
- 浏览器->servlet->service->dao->数据库
- 数据库操作(MVC思想)
- 响应处理结果(Response对象)
Response对象
Response对象要作何响应呢?通常如下:
设置响应头
- setHeader(key,val);//在响应头中添加信息,同键会覆盖。
- addHeader(key,val);//在响应头中添加信息,不会覆盖。
- 特殊地,有几个响应头可以用自己的方法来设置:
- setContentType(值);//设置Content-type,如:“text/html;charset=utf-8”告诉浏览器响应的类型和编码
设置响应状态码
- 示例:sendError(404,"Page Not Found");
设置响应实体
- resp.getWriter().write("<b>具体的响应内容</b>");
示例代码
模拟用户登录,从网页获取用户输入的账号和密码,与数据库中的数据进行匹配,响应登录成功或登录失败页面。
完整代码下载:点击下载
其中,mysql数据库部分:
库名为db1,表名为servlet练习相关表