使用jsp+servlet时,有些代码期待写在servlet中,而在jsp程序中尽量写页面代码,像在注册的时候,注册成功时要显示信息的时候,这些代码可以在jsp中通过Java代码显示,也可以在servlet中显示,可是使用servlet到jsp页面的跳转语句时,就不会显示servlet页面的内容啦,这时我们可以借助Response中的刷新头,使页面停留一些时间,然后调转到jsp页面,这样servlet中的内容也可以显示啦,看一下代码:
- package com.you.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.you.bean.UserBean;
- import com.you.domain.Domain;
- public class RegisteServlet extends HttpServlet {
- private String name;
- private String word;
- private String sex;
- private String birth;
- private String email;
- private String address;
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=UTF-8");
- request.setCharacterEncoding("UTF-8");
- UserBean userBean = new UserBean();
- userBean.setUsername(request.getParameter("username"));
- userBean.setPassword(request.getParameter("userpassword"));
- userBean.setSex(request.getParameter("sex"));
- String year = request.getParameter("year");
- String month = request.getParameter("month");
- String day = request.getParameter("day");
- userBean.setBirth(year + "年" + month + "月" + day + "日");
- userBean.setEmail(request.getParameter("email"));
- userBean.setAddress(request.getParameter("address"));
- request.getSession().setAttribute("user", userBean);
- name = userBean.getUsername();
- word = userBean.getPassword();
- sex = userBean.getSex();
- birth = userBean.getBirth();
- email = userBean.getEmail();
- address = userBean.getAddress();
- Domain myDo = new Domain();
- myDo.insert(name, word, sex, birth, email, address);
- PrintWriter out = response.getWriter();
- out.print(name+"<br/>");
- out.print(word+"<br/>");
- out.print(sex+"<br/>");
- out.print(birth+"<br/>");
- out.print(email+"<br/>");
- out.print(address);
- response.setHeader("refresh", "5;URL=http://localhost:8080/Login_5/register.jsp");
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doGet(request, response);
- }
- }
- package com.you.servlet;
- import java.io.IOException;
- public class CacheTestServlet extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=utf-8");
- response.setDateHeader("Expires", 0);
- response.setHeader("Cache-Control", "no-cache");
- response.setHeader("Prama", "no-cache");
- PrintWriter out = response.getWriter();
- out.println("本次响应的随机数为:" + Math.random());
- out.println("<form action='NotServlet'" + "method='post'"
- +"第一个参数:<input type='text' name='p1'><br/>" +
- "第二个参数:<textarea name='p2'></textarea><br/>" +
- "<input type='submit' value='提交'>" +
- "</form>");
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doGet(request, response);
- }
- }
上面的三句都是禁止浏览器缓存的头,因为担心有些浏览器不识别,所以三种类型的都写上,这样就都会实现啦。