补充-servlet基础
2013-07-23 14:13
169 查看
一、获取客户端信息
1.建立一个动态web (Dynamic Web project)ServletTest的项目
2 在工程.ServletTest中创建一个BookInformationServlet.java的Servlet。
3.建立一个JSP显示页面 bookInformation.jsp
4.部署用于描述文件web.xml
</web-app>
5.结果如图
二、Servlet之间通信
出现在同一个web服务器上的servlet可皮此通信,也可共享资源。可用RequestDispatcher接口来实现Servlet之间的通信。即当前页面所要转
发的目标页或servlet对象可用request获取用户提交的数据
实现转发步骤:
1、得到RequestDispatcher引用:
public abstract RequestDispatcher getRequestDispatcher(String urlpath)
其中urlpath为要转发Jsp页面或Servlet地址。
RequestDispatcher dispatcher=request. getRequestDispatcher(a.jsp);
或
RequestDispatcher dispatcher;
dispatcher =getSeveltContext().
getRequestDispatcher(/SecondServlet);
2、转发:
public abstract void forward(ServletRequest request,SevletResponse response)
throws ServletException,IOException
该方法用来把一个Jsp或Servlet请求提交到另一个。当其输出完全由第二个Servlet或被调用Servlet生成时,必须用此方法。若第一个Servlet已访问了PrintWriter对象,则由此方法引发异常
dispatcher.forward(request, response);
例6-7 Servlet之间通信
Verity.java
ShowMessage.java
1.建立一个动态web (Dynamic Web project)ServletTest的项目
2 在工程.ServletTest中创建一个BookInformationServlet.java的Servlet。
package com; 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; /** * Servlet implementation class bookinformation */ public class BookInformationServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public BookInformationServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); request.setCharacterEncoding("UTF-8"); String price=request.getParameter("price"); out.println("<html>"); out.println("价格:"+price+"<br>"); out.println("</html>"); } }
3.建立一个JSP显示页面 bookInformation.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form name="form1" method="post" action="BookInformationServlet"> <table> <tr> <td> 价格:<input name="price" type="text" id="name"> </td> </tr> </table> </form> </body> </html>
4.部署用于描述文件web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>ServletTest</display-name> <servlet> <servlet-name>SampleServlet</servlet-name> <servlet-class>com.SampleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SampleServlet</servlet-name> <url-pattern>/SampleServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>BookInformationServlet</display-name> <servlet-name>BookInformationServlet</servlet-name> <servlet-class>com.BookInformationServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BookInformationServlet</servlet-name> <url-pattern>/BookInformationServlet</url-pattern> </servlet-mapping>
</web-app>
5.结果如图
二、Servlet之间通信
出现在同一个web服务器上的servlet可皮此通信,也可共享资源。可用RequestDispatcher接口来实现Servlet之间的通信。即当前页面所要转
发的目标页或servlet对象可用request获取用户提交的数据
实现转发步骤:
1、得到RequestDispatcher引用:
public abstract RequestDispatcher getRequestDispatcher(String urlpath)
其中urlpath为要转发Jsp页面或Servlet地址。
RequestDispatcher dispatcher=request. getRequestDispatcher(a.jsp);
或
RequestDispatcher dispatcher;
dispatcher =getSeveltContext().
getRequestDispatcher(/SecondServlet);
2、转发:
public abstract void forward(ServletRequest request,SevletResponse response)
throws ServletException,IOException
该方法用来把一个Jsp或Servlet请求提交到另一个。当其输出完全由第二个Servlet或被调用Servlet生成时,必须用此方法。若第一个Servlet已访问了PrintWriter对象,则由此方法引发异常
dispatcher.forward(request, response);
例6-7 Servlet之间通信
<%@ page contentType="text/html;charset=GB2312" %> <HTML> <BODY ><Font size=4> <form action="Verify" method="post"> 输入姓名:<Input Type=text name=name> <BR>输入分数:<Input Type=text name=score> <BR><Input Type=submit value="提交"> </form> </Font> </BODY> </HTML>
Verity.java
package com; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Verify extends HttpServlet { public void init(ServletConfig config) throws ServletException {super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { String name=request.getParameter("name"); //获取客户提交的信息 String score=request.getParameter("score"); if(name.length()==0||name==null) { response.sendRedirect("sixth_example5.jsp"); //重定向 } else if(score.length()==0) { response.sendRedirect("sixth_example5.jsp"); //重定向 } else if(score.length()>0) { try { int numberScore=Integer.parseInt(score); if(numberScore<0||numberScore>100) { response.sendRedirect("sixth_example5.jsp"); } else { RequestDispatcher dispatcher= request.getRequestDispatcher("ShowMessage"); dispatcher.forward(request, response); // 转发 } } catch(NumberFormatException e) { response.sendRedirect("input.jsp"); } } } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { doPost(request,response); } }
ShowMessage.java
package com; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ShowMessage extends HttpServlet { public void init(ServletConfig config) throws ServletException {super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); String name=request.getParameter("name"); //获取客户提交的信息 String score=request.getParameter("score"); //获取客户提交的信息 try{ byte bb[]=name.getBytes("utf-8"); name=new String(bb,"utf-8"); } catch(Exception exp){} out.print("<Font color=blue size=4>你的姓名是:"); out.print(name); out.print("<BR><Font color=pink size=4>你的成绩是:"); out.print(score); } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { doPost(request,response); } }
相关文章推荐
- 传智播客Java web之 Servlet基础补充
- 补充 精通JSP开发应用 (Eclipse 平台) 第六章 基础技术:Servlet
- Servlet 基础案例
- Servlet基础(三) Servlet的多线程同步问题
- SQL Server 索引基础知识(8)--- 数据基本格式补充
- Servlet基础知识(二)——web.xml文件的作用
- Java基础 集合补充
- Servlet基础_0300_Cookie
- JavaWeb基础--HttpServletResponse
- JavaWeb基础--HttpServletRequest
- servlet基础
- 黑马程序员——Java基础---Servlet生命周期与工作原理
- Servlet框架基础和生命周期(结合源码)、destroy()的思考
- python基础补充部分
- 面向对象基础1的补充
- Shader相关的基础数学知识整理(持续补充
- Java Web 第二天 Servlet基础
- Servlet基础知识(四)——Servlet过滤器Filter
- servlet基础讲解
- 【Java基础】第十讲 JSP与Servlet