servlet-跳转、初始化传参、乱码、解析过程
2017-03-23 09:27
162 查看
一、跳转
转发用法:req.getRequestDispatcher(“目标文件”).forward(req, resp);
重定向
用法:resp.sendRedirect(“目标文件”);
两者的区别
(1)转发不会修改地址,重定向会
(2)转发只有一次请求,重定向会在发一个请求到新的页面
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("doPost```"); System.out.println("正在执行..."); String username = req.getParameter("username"); String password = req.getParameter("password"); System.out.println(username + "--" + password); if(name.equals(username)){ /*转发*/ // req.getRequestDispatcher("fail.html").forward(req, resp); /*重定向*/ resp.sendRedirect("fail.html"); }else{ // req.getRequestDispatcher("success.html").forward(req, resp); resp.sendRedirect("success.html"); } System.out.println("执行完毕..."); }
二、初始化传参
说明:需要放在servlet里面,同时,只有这一个servlet可以取到该值,在init的时候使用ServletConfig取值web.xml
<!--注册 --> <servlet> <servlet-name>Hello</servlet-name> <!--servlet名字 --> <servlet-class>servlet.Hello</servlet-class><!--路径 --> <init-param> <param-name>username</param-name><!--名称 --> <param-value>root</param-value><!--值 --> </init-param> <init-param> <param-name>password</param-name> <param-value>123abc</param-value> </init-param> <load-on-startup>1</load-on-startup><!--正数表示在启动的时候自动初始化,数字表示顺序,数字越大越后--> </servlet>
Java
private String name; private String pwd; @Override public void init(ServletConfig config) throws ServletException { System.out.println("Hello init```"); name = config.getInitParameter("username"); pwd = config.getInitParameter("password"); System.out.println(name + "--" + pwd); }
三、乱码
产生原因:编码和解码的方式不一致常见的乱码:数据库、io、web
1.web请求乱码
(1)get
conf->server.xml
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
(2)post
java
req.setCharacterEncoding("UTF-8");
2.web响应乱码
说明:无论是get还是post都一样
java
resp.setContentType("text/html;charset=utf-8");
四、解析过程
解析url->定位->web.xml->检查是否注册->调用注:图片来源于《servlet详细讲解》
相关文章推荐
- 解析Java类和对象的初始化过程
- 解析Java类和对象的初始化过程
- 解析 Java 类和对象的初始化过程(转)
- 在Servlet中,用this.getServletContext().getRequestDispatcher()跳转后的中文页面显示乱码
- 解析 Java 类和对象的初始化过程
- 解析 Java 类和对象的初始化过程
- Servlet跳转到jsp页面输出结果乱码
- 解析Java类和对象的初始化过程
- 深入解析值类型的初始化过程!
- 解析 Java 类和对象的初始化过程
- 解析Java类和对象的初始化过程
- 解析Java类和对象的初始化过程_J2EE_Java开发_软件开发-编程-IT资源网
- 解析Java中的类和对象的初始化过程
- [转载]解析Java类和对象的初始化过程_J2EE_Java开发_软件开发-编程-IT资源网
- Servlet中输出XML解析中文乱码问题解决
- 解析Java类和对象的初始化过程
- 乱码问题集合--关于jsp和servlet中的乱码问题,传参等
- [转贴]全面解析Java中的类和对象的初始化过程
- jsp通过href跳转到servlet的乱码问题
- 实现登录 servlet dispatcher 跳转页面中文乱码问题