每一个servlet中都有一个get方法和post方法,在get方法中写上 this.doPost(req, resp); 再把剩下的都写在post方法中即可。
MyServlet中的 post方法:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out1 = resp.getWriter();
System.out.println("这里是MyServlet里输出的");
}
在MyServlet中设置属性有3种方法
1.context方法
在post方法加上这几句话
String str1 = req.getParameter("n1");
getServletContext().setAttribute("username", str1);
resp.sendRedirect("test2");
在另一个名叫"TestServlet"中接受这个属性 代码如下:
String name = (String)getServletContext().getAttribute("username");
System.out.println(name);
上面的"n1" 是从网页中获取的属性的name,在另一个servlet中即可接收到这个值并输出。
2.session方法
MyServlet中的代码:
String str1 = req.getParameter("n1");
HttpSession session = req.getSession();
session.setAttribute("username", str1);
resp.sendRedirect("test2");
TestServlet中的代码:
String name =(String) req.getSession().getAttribute("username");
System.out.println(name);
3.request方法
String str1 = req.getParameter("n1");
req.setAttribute("username", str1);
req.getRequestDispatcher("test2").forward(req, resp);
TestServlet中接收的代码:
String name = (String)req.getAttribute("username");
System.out.println(name);
Web.xml中的设置:
<servlet>
<servlet-name>asd</servlet-name>
<servlet-class>MyWeb1.MyServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>asd2</servlet-name>
<servlet-class>MyWeb1.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>asd</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>asd2</servlet-name>
<url-pattern>/test2</url-pattern>
</servlet-mapping>