全国咨询/投诉热线:400-618-4000

JAVA培训之jsp与Servlet结合案例

更新时间:2016年08月13日18时37分 来源:传智播客JAVA培训学院 浏览次数:

jsp入门中,我们了解了jsp与Servlet的分工,jsp作为请求发起页面和请求结束页面,而Servlet就是做请求处理。下面通过一个案例的学习,掌握jsp与Servlet的应用。具体如下所示:
该案例实现了一个加法运算,具体功能是:在页面中输入两个数,然后点击页面中的“提交”按钮,请求Servlet,Servlet对数据进行处理,并把处理结果存放在request域中,最后再请求转发到另一个页面,在另一个页面中显示处理结果。
以上是本案例的功能分析,下面我们通过一站图来跟清楚的理解该需求,如图1-1所示:

图1-1 案例流程图
下面我们来完成该案例,详细请参考jsp与Servlet案例详解,点击此处 下载案例源代码,具体步骤如下所示:
(1)创建一个web应用,Example16,在该应用的WebRoot目录下新建一个目录jsps,并在该目录下创建一个jsp文件,form.jsp,主要代码如例1-1所示:
例1-1  form.jsp
  <body>
<form action="/Example16/SumServlet" method="post">
    整数1:<input type="text" name="num1"/><br/>
    整数2:<input type="text" name="num2"/><br/>
    <input type="submit" value="提交"/>
</form>
  </body>
(2)在jsps目录中再次新建一个jsp文件,result.jsp,它的主要代码如例1-2所示:
例1-2 result.jsp
<body>
<%
   //从request域中获取数据
   Integer sum =(Integer)request.getAttribute("sum");
 %>
 <%= sum %><!--向浏览器端输出sum的值-->
</body>
(3)在该应用下新建一个Servlet类,SumServlet ,主要代码如例1-3所示:
例1-3 SumServlet.java
public class SumServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
      //1.获取请求参数
       String s1=request.getParameter("num1");
       String s2=request.getParameter("num2");
       //2.将请求参数的类型转换成int类型
       Integer num1=Integer.parseInt(s1);
       Integer num2=Integer.parseInt(s2);
       //3.将两个数加在一起
       int sum=num1+num2;
       //4.将求和的结果保存在request域中
       request.setAttribute("sum", sum);
       //5.请求转发到result.jsp
       request.getRequestDispatcher("/jsps/result.jsp").forward(request, response);
    }
}
例1-3中,在进行请求转发时,转发的路径是“/jsps/result.jsp”。之前我们练习请求转发时都是转发给Servlet,转发路径也就是Servlet的访问路径;现在转发给jsp文件,转发的路径是该jsp页面在WebRoot下的路径,例如result.jsp页面在WebRoot目录下的jsps目录中,那么转发路径就是“/jsps/result.jsp”,如果result.jsp在WebRoot的根目录下,那么转发路径就是“/result.jsp”。
(4)SumServlet在web.xml文件中的访问路径配置为:“/SumServlet”。
(5)将Example16发布到Tomcat服务器中,然后启动服务器,在浏览器地址栏上输入:http://localhost:8080/Example16/jsps/form.jsp,浏览器显示结果如图1-2所示:

图1-2 浏览器显示结果
(6)在图1-2中,输入:整数1:123,整数2:456,然后点击“提交”,浏览器显示结果如图1-3所示:

图1-3 运行结果
由图1-3所示可知,在result.jsp页面中,将sum属性从request域中取出。

本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee