首页 > 其他分享 >servlet

servlet

时间:2024-12-21 14:52:30浏览次数:3  
标签:Servlet request jsp import servlet javax

1.什么是servlet?
在Java中,Servlet是用于创建动态Web内容的服务器端组件。Servlet运行在Tomcat服务器上,可以响应客户端(通常是Web浏览器)发出的请求。Servlet的生命周期由服务器管理,主要包括初始化、请求处理和销毁三个阶段。

Servlet是一种Java类,它实现了javax.servlet.Servlet接口。Servlet主要用于处理HTTP请求和生成HTTP响应,可以用于创建动态网页、处理表单数据、管理会话等。

----等价于我们原来的处理页面------------
2.为什么使用servlet?
为了减少jsp中java代码的出现。<%%>. 因为网页适合展示html标签。如果你把java代码也放在网页中,这样就显的jsp网页比较乱。

以后再jsp中不要再出现<%%>了。
如何使用servlet
1.创建一个Servlet类并继承HttpServlet

public class MyServlet extends HttpServlet {

    //重写service方法。处理客户的请求
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    }
}

2.再web.xml文件中注册servlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--注册servlet-->
    <servlet>
        <!--为注册的servlet类起名称。随便起-->
        <servlet-name>MyServlet</servlet-name>
        <!--表示自定义的servlet类-->
        <servlet-class>com.ykq.servlet.MyServlet</servlet-class>
    </servlet>
    
    <!--设置servlet的映射关系. 当请求my路径时,则映射到MyServlet类中。-->
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/my</url-pattern>
    </servlet-mapping>
</web-app>

3.测试

3.完成案例
通过servlet完成登录操作
修改登录页面

LoginServlet

package com.ykq.servlet;

import com.ykq.dao.UserDao;
import com.ykq.entity.User;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class LoginServlet extends HttpServlet {
    private UserDao userDao=new UserDao();
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //编码设置
        request.setCharacterEncoding("utf-8");
        //接受参数
        String uname = request.getParameter("uname");
        String pwd = request.getParameter("pwd");
        //调用UserDao类中的方法
        User user = userDao.selectByNameAndPwd(uname, pwd);
        //判断是否登录成功
        if(user!=null){
            HttpSession session = request.getSession();
            //把当前用户信息保存再session中
            session.setAttribute("user",user);
            response.sendRedirect("/main.jsp");
        }else{
            response.sendRedirect("/login.jsp");
        }
    }
}

4.servlet如何处理多个请求
我们不可能对每个请求设置一个servlet。而我们应该一个Servlet可以处理多个请求。 建议大家一张表对应一个servlet。 我们可以再传递参数时添加一个标识符的参数。

5.使用注解完成servlet的注册和映射
web3.0以后才有的

5.jsp+servlet+dao+el+jstl完成一个综合案例
页面中不允许出现<%%>java代码
完成登录

登录页面

UserServlet

查询所有用户并展示

main.jsp

删除操作

main.jsp

UserServlet

修改--回显数据

修改main.jsp

UserServlet

update.jsp

<%--
  Created by IntelliJ IDEA.
  User: ldh
  Date: 2024/9/19
  Time: 9:45
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册页面</title>
</head>
<body>
   <h3>修改页面</h3>
<form action="/UserServlet?method=update" method="post">
     <table border="1" cellpadding="0" cellspacing="0">
         <tr align="right">
             <td width="100">编号:</td>
             <td><input type="text" name="id" value="${requestScope.user.id}" readonly/></td>
         </tr>
         <tr align="right">
             <td width="100">账号:</td>
             <td><input type="text" name="uname" value="${user.username}"/></td>
         </tr>
         <tr align="right">
             <td>密码:</td>
             <td><input type="password" name="pwd" value="${user.password}"/></td>
         </tr>
         <tr align="right">
             <td>姓名:</td>
             <td><input type="text" name="realname" value="${user.realname}"/></td>
         </tr>
         <tr>
             <td colspan="2" align="center"><input type="submit" value="立即修改"/></td>
         </tr>
     </table>
</form>
</body>
</html>

立即修改
UserServlet

标签:Servlet,request,jsp,import,servlet,javax
From: https://www.cnblogs.com/xiaomubupi/p/18620768

相关文章

  • servlet的请求转发和响应重定向
    文章目录1.简介2.请求转发2.1forword的请求转发2.2include的请求转发2.3其他3.响应重定向4.区别5.总结1.简介请求转发(RequestForwarding):请求转发是指服务器端将请求从一个Servlet转发到另一个Servlet、JSP页面或HTML页面,整个过程在服务器内部进行,对......
  • RequestContextHolder 与 HttpServletRequest 的联系
    1.什么是RequestContextHolder?RequestContextHolder是Spring框架提供的一个工具类,用于在当前线程中存储和获取与请求相关的上下文信息。它是基于ThreadLocal实现的,能够保证每个线程独立存储和访问请求信息。与HttpServletRequest的关系:HttpServletRequest:是标准......
  • 12.8 每日总结 (非Web环境中尝试获取HttpServletRequest对象Bug)
    今天的Bug解决吧SpringAI的底层函数回调并没有注册到Web容器中,所以要通过Controller层提前传递。 这个问题出现的原因是因为你在非Web环境中尝试获取HttpServletRequest对象,而这个对象是Web应用程序特有的,用于封装客户端发送的HTTP请求信息。在Spring框架中,HttpServletRequest......
  • Servlet介绍与配合javaWeb的使用
    文章目录1.Servlet介绍2.servlet的使用2.1创建项目2.2新建类2.3注册类2.4访问localhost:8080/myServlet.do2.5更简单的方式,使用注解(@WebServlet)2.6其他:修改欢迎页3.总结1.Servlet介绍Servlet是一种Java编写的服务器端程序,用于处理HTTP请求并生成动态Web内......
  • JavaWeb-2 Ajax以JSON格式访问Servlet
    1.客户端代码1<!DOCTYPEhtml>2<html>3<head>4<metacharset="UTF-8">5<title>Bootstrap实例-水平表单</title>6<linkrel="stylesheet"type="text/css"href="./css/boo......
  • Day32-JavaEE应用&Servlet路由技术&UDBC&Mybatis数据库&生命周期
    一,Servlet&路由&周期1,Servlet的含义:Servlet是运行在web服务器或应用服务器上的程序,它是作为来自web浏览器或其他HTTP客户端请求和HTTP服务器上的数据库或应用程序的中间件。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页2.Servl......
  • Y20030002Java+Jsp+Servlet+MySQL的问卷调查小程序的设计与实现(附源码 配置 文档)
    Java+Servlet+MySQL的问卷调查小程序的设计与实现1.摘要2.系统功能分析3.系统功能结构图4.界面展示5.源码获取1.摘要本系统借助于微信小程序的便捷性和普及性,为用户提供了一个高效、易用的在线问卷调查平台。通过利用微信小程序的方便性和流行性,这个系统为用户打造......
  • 在Eclipse中添加Servlet-api.jar的方法
    在Eclipse中添加Servlet-api.jar的方法方法一:点击窗口->首选项->Java->构建路径->类路径变量->新建;将你的tomcat目录下的common/lib/servlet.jar加进来。如果你建立了一个tomcatproject它会自动加进来的,如果没有的话你也可以通过手动来加入,选中你刚才建的项目右击->属性->java......
  • Java-25 深入浅出 Spring - 实现简易Ioc-01 Servlet介绍 基本代码编写
    点一下关注吧!!!非常感谢!!持续更新!!!大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html案例思路参考来源来自网络视频,这里的案例是转账的案例。这里我们直接使用接口的方式,就不实现具体的页面了,我们直接通过接口调用的方式来模拟这一块。最终将实......
  • A1380JSP+SERVLET+MYSQL+LW+基于jsp的“软件测试”课程学习网站的设计与实现
    基于jsp的“软件测试”课程学习网站1.摘要2.系统开发的目的和意义3.功能结构图4.界面展示5.源码获取1.摘要摘要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。“软件测试”课程学习......