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

文章内容:运行结果图+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开发实例大全   清华大学出版社  作者:软件开发技术联盟
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值