JSP与Servlet

本文介绍了JSP与Servlet如何实现登录成功后的页面跳转。通过JSP页面发送请求,Tomcat服务器创建Servlet实例,处理请求并设置响应。在Servlet中,通过getParameter获取数据,验证成功后,利用response的setHeader方法设置302重定向,跳转到新的JSP页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP与Servlet

 

注意每个层都是独立,需要通过指定定的url联系方式才能相互传递数据,JSP页面仅仅是显示处理结果而已,真正处理数据的是Servlet控制层。

 

流程:

【1】首先JSP页面是通过get或者post方法指定特定的URL向服务器发送请求,

【2】tomcat服务器会根据请求url的资源路径,创建对应的LoginServlet的对象

【3】tomcat服务器,会创建request和response对象,request对象中封装的JSP页面请求信息数据

【4】Servlet控制层可以通过request对象获取JSP页面请求信息数据,Servlet控制层通过response对象设置响应信息数据

【5】服务器在浏览器做出响应之前会从response对象中拿Servlet控制层设置的响应信息数据

实现登录成功跳转

LoginServlet.jsp

<!--JSP页面设置参数name通过get方法指定URL向Servlet传输数据-->

<form action="LoginServlet" method="get">

        账号<input type="text" name="myname">

        密码<input type="text" name="mypassword">

        <input type="submit" value="登录">

    </form>

LoginServlet

@WebServlet("/LoginServlet")

public class LoginServlet extends HttpServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response)

   throws ServerException,IOException,ServletException{

       //一般情况都是将doGet的数据传给doPost处理

       //因为不需要两个地方都写方法

       this.doPost(request, response);

      

   }

public void doPost(HttpServletRequest request,HttpServletResponse response)

        throws ServerException,IOException,ServletException{

    //【1】解决中文数据的编码集问题

    request.setCharacterEncoding("utf-8");

    response.setCharacterEncoding("utf-8");

    //【2】获取数据

    //Servlet通过getParameter("name")方法与JSP页面设置name属性名相对

    //JSP通过get方法指定URL向Servlet传输数据

    String myname=request.getParameter("myname");

    String mypassword=request.getParameter("mypassword");

    System.out.println(myname+mypassword);

    //向客户端响应输出内容

    PrintWriter pw=response.getWriter();

    if("admin".equals(myname)&&"123".equals(mypassword)){

        //注意使用setHeader("Location", "url"),需要设置状态码

        //根据Http1.1协议规范

        //【1】设置状态码  302重新定位状态码

        response.setStatus(302);

        //【2】定位调转的位置是哪个页面

        response.setHeader("Location", "jsp/SelectAll.jsp");

    }else {

        pw.write("回去洗洗睡吧");

    }

}

}

成功结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值