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->数据库
  • 响应处理结果(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练习相关表

 

posted @ 2020-02-22 10:10  Scorpicat  阅读(172)  评论(0编辑  收藏  举报