jsp怎么调用servlet_Servlet简述

本文介绍了Servlet的基本概念,包括其生命周期中的init(), service()和destroy()方法,并阐述了Servlet的请求转发与重定向的区别。同时,给出了一个简单的登录验证Servlet实现,当用户名为abc且密码为123时,用户登录成功跳转到success.jsp,否则跳转到error页面。" 107335255,8225867,无库无框架的20个小型Web项目实践,"['前端开发', 'HTML', 'JavaScript', 'CSS', 'Web应用']

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

servlet

1.servlet  是什么?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

0c5cf5e3bb4643629d17cde13a7f5aac.png

2.servlet  生命周期

servlet的生命周期可别定义为从创建到毁灭的整个过程

(1)servlet   通过调用init()方法  进行初始化

init()只能被调用一次  他只在用户创建servlet时被调用  在后续每次用户请求时不再被调用

当用户第一次调用与servlet相对应的url时  系统会创建一个servlet实例  每一个用户请求都会产生一个新的线程  适当的时候会交给  doGet()   doPost() 。  init()会创建加载一些简单的数据  这些数据会存活与整个servlet周期

(2)servlet  通过调用service()来处理客户端的请求

service()是执行实际任务的主要方法  servlet容器调用service()  方法来处理来自客户端的的请求  并把格式化的响应写回客户端

每次服务器收到一个servlet请求时  服务器会产生一个新的线程并调用服务   service()会检查HTTP的请求类型  根据类型的不同调用不同的方法

(3)servlet  通过调用destory()方法终止

destory()方法只会被调用一次   在servlet生命周期结束时被调用  destory()方法可以让servlet关闭数据库连接  停止后台进程并执行类似的清理活动

(4)servlet  是由jvm的垃圾回收器进行垃圾回收的

3.servlet  重定向和请求转发

概念:请求转发只是把请求转发给服务器的另一个组件中(servlet  或则是  jsp  网页)(个人理解:一个界面跳到另一个界面)

重定向  只是告诉客户 游览器 去访问另一个网页(url)这个url可能是在同一个站点内  也可能是在其他的站点

请求转发发生在服务器端   由服务器控制   重定向由客户端游览器控制

请求转发  在一个请求和一个响应中完成   重定向  在两个响应两个请求中完成

敲黑板 !!!!!划重点 !!!! 灵魂画师上线了

1a934543acef2414d55f7cf13de166f9.png

简单实现

业务逻辑描述  用户从login.jsp界面  输入用户名 和  密码  如果密码是123  用户名是abc  则

跳转到sucess.jsp界面  表示登陆成功 否则就跳转到error界面表示登陆失败

servlet代码

package Severlet;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 LoginSer extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    request.setCharacterEncoding("utf-8");        String username = request.getParameter("username");//获取前端的用户名        String password = request.getParameter("pwd");//获取  前端的密码        if(password.equals("123")&&username.equals("abc")){         request.getRequestDispatcher("sucess.jsp");        }        else        {         response.sendRedirect("error.jsp");//重新定向        }}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request, response);  //调用doget}}

login.jsp

     

欢迎登录

非常酷的系统

记住密码
还没注册? 注册

web.xml

<?xml version="1.0" encoding="UTF-8"?>      LoginSer    Severlet.LoginSer        LoginSer    /LoginSer  

结果展示

2e9f891739c27e476e2e20cf93fe714e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值