Intellij idea/Servlet学习之-在Servlet中实现页面转发

来源:互联网 发布:知乎女神扒皮 编辑:程序博客网 时间:2024/06/16 20:12

文章内容:运行结果图+Servlet类代码+web.xml中Servlet的配置代码+jsp代码        100%能运行成功,亲自试验结果。

第一部分:运行结果图


输入用户名:mr   密码:123    点击登录,出现下面窗口。


第二部分:新建一个名为ForwardServlet的Servlet类(其实就是一个普通的java类,加上Servler的代码就是Servlet类了)具体代码如下:


/** * Created by Administrator on 2017/7/24. * 功能:在Servlet中控制页面的转发 * 实现技术:使用RequestDispatcher对象的forward()方法。通过forward()方法将当前的请求转发到其他web组件 * 注意:该方法可以将当前正在处理的请求转发到其他web组件(Servlet/JSP/HTML),在该业中可以通过request内置对象来获得此请求 */        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;public class ForwardServlet extends HttpServlet {    public ForwardServlet() {        super();    }    public void destroy() {        super.destroy();    }    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        this.doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        request.setCharacterEncoding("UTF-8");    //设置请求数据的字符编码格式        String name = request.getParameter("name"); //获得请求表单中的用户名        String pwd = request.getParameter("pwd");  //获得请求表单中的密码        if((name!=null&&!name.equals(""))&&(pwd!=null&&!pwd.equals(""))){            if(name.equals("mr")&&pwd.equals("123")){                //使用RequestDispatcher对象将页面请求转发到success.jsp页                request.getRequestDispatcher("success.jsp").forward(request, response);            }else{                request.getRequestDispatcher("error.jsp").forward(request, response);            }        }    }    /**     * Initialization of the servlet. <br>     *     * @throws ServletException if an error occurs     */    public void init() throws ServletException {        // Put your code here    }}

第三部分:web.xml中Servlet的配置代码(就是在系统生成的<web-app>标签中插入Servlet配置代码)

具体如下:

<servlet>    <servlet-name>ForwardServlet</servlet-name>    <!--自定义的servlet名-->    <servlet-class>ForwardServlet</servlet-class>    <!--具体的类路径--></servlet><servlet-mapping>    <servlet-name>ForwardServlet</servlet-name>    <!--自定义的servlet名,与上面的name一致-->    <url-pattern>/forward</url-pattern>    <!--对应网页地址中具体的servlet名-->    <!--<url-pattern>/WebClient/ForwardServlet</url-pattern>--></servlet-mapping>


第四部分:jsp代码(在系统生成的index.jsp中写入代码)  具体代码如下:

 
<%@ page pageEncoding="UTF-8" import="java.util.*" language="java" %><% String path=request.getContextPath();%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>  <title>用户登录</title></head><body><center>  <p>用户登录</p></center><form action="forward" method="post">  <table border="1" width="250px;" align="center">    <tr>      <td width="75px">用户名:</td>      <td><input type="text" name="name"></td>    </tr>    <tr>      <td width="75px">&nbsp;&nbsp;码:</td>      <td><input name="pwd" type="password"></td>    </tr>    <tr>      <td colspan="2">        <input type="submit" value="登录"/>&nbsp;&nbsp;      </td>    </tr>  </table></form></body></html>


点击运行。如果运行不成功,可能出现下面的问题:

1、JDK、Tomcat在Intellij idea中没有配置好,因为新建一个Java web需要再对intellij idea 进行配置,相关的配置请参照:如何新建一个web工程
2、各个文件的调用路径不对,特别是web.xml中Servlet的配置代码中的名字。具体请参照:如何在web.xml中写Servlet的配置代码

参考文章:Java Web开发实例大全   清华大学出版社  作者:软件开发技术联盟
原创粉丝点击