当前位置: 首页 > news >正文

Javaweb(servlet深入)

        在Javaweb中,servlet是处理客户端请求的核心组件,负责接收请求、处理业务逻辑并生成响应。下面将为您介绍servlet的方法:

        一、servlet基础原理与核心机制

        1、本质与生命周期

             本质:servlet是运行在web服务器()如tomcat上的Java类,必须实现javax.servlet.Servle(接口)通常通过继承HttpServlet简化开发,是Javaweb的"控制器"核心

             生命周期(由web容器管理):

             init():初始化阶段,容器创建servle实例后调用,用于加载资源(如数据库连接),仅执行一次

              service():处理请求耳洞核心方法,容器每次收到请求都会调用(多线程环境),根据请求方式(GET/POST等)分发到doGet()/doPost()等方法

              destroy():销毁阶段,容器关闭或servlet被移除时调用,用于释放资源(如关闭连接)

        2、核心作用:

               请求处理:接收客户端(浏览器)的HTTP请求(封装到HttpServletRequest对象中),解析请求参数、Cookie、Session等信息

                业务逻辑:调用Service层处理具体业务(如用户登录验证、数据查询)

                响应生成:通过HttpServletsponse对象生成响应(如返回HTML、JSON、重定向或转发)

                映射访问

                1、通过web,xml配置或注解(@WebServlet)将Servlet与URL路径绑定。例如:

        @WebServlet("/user/login") // 访问路径:http://localhost:8080/项目名/user/login public class LoginServlet extends HttpServlet { ... }

                2、容器根据 URL 匹配对应的 Servlet 实例处理请求

        //登录:service层 函数名,要以功能来,要以功能来命名

        //Dao层以数据库的操作命名

        //ServletContext:代表了这个站点,同时是一个域对象,

                                      范围:整个站点,域对象数据的存储都是key = value 的形式

        //域对象:色绿了他context,session。request、page

        //注意:servletcontext的生命周期太长,我们要手动收回

        //利用ServletContext的读取外部的配置文件,如果是servlet要访问的资源是相当于web的路径,普通Java 类的资源可以放在src

        例如:InputStream  in  =  servletContext.getResource As Streaml "....";

        二、Servlet高级特性与实践

                1、会话管理

                      Servlet:Servlet通过HTTP Session对象维护用户会话状态,解决HTTP无状态问题。例如:

        HttpSession session = request.getSession();

        session.setAttribute("user", currentUser); // 存储用户信息

                      Cookie:通过response.addCookie()设置客户端 Cookie,用于存储轻量信息(如记住登录状态)

                2、请求转发与重定向

                       转发(Forward):通过RequestDispatcher在服务器内部跳转,共享requestresponse对象,URL 不变:

                       request.getRequestDispatcher("/success.jsp").forward(request, response);

                       重定向(Redirect):服务器返回 302 状态码,客户端重新请求新 URL,URL 改变,不共享请求对象:

                        response.sendRedirect("/index.jsp");

                3、过滤器(Filter)与监听器(Listener)

                        过滤器:拦截 Servlet 请求 / 响应,用于统一处理(如编码设置、权限校验),通过@WebFilter配置:

                            @WebFilter("/*") // 拦截所有请求

                            public class EncodingFilter implements Filter {

                                       public void doFilter(...) {

                                                request.setCharacterEncoding("UTF-8"); // 统一编码                                                 chain.doFilter(request, response); // 放行

                                        }

                                }

                        监听器:监听 ServletContext、Session、Request 等对象的创建 / 销毁或属性变化,用于初始化全局资源(如加载配置文件)

                4、异常处理

                        传统Servlet处理请求为同步阻塞模式,JDK+引入同步Servlet(@WebServlet(asyncSupported = true)),允许Servlet将请求交给线程处理,释放容器线程,提升高并发能力

                3、与其他组件的协作

                        与JSP配合:Servlet处理逻辑后,转发到JSP渲染视图(MVC模式中的C层)

                        与数据库交互:通过JDBC或ORM框架(如MyBatis)在Servlet中操作数据,实现动态内容生成

        

http://www.dtcms.com/a/428790.html

相关文章:

  • 小九源码-springboot067-Java兰州市出租车服务管理系统
  • 专业做网站照片广告网站设计
  • spring框架做网站wordpress禁主题
  • 801-203_各无人机厂家对RemoteID支持情况汇总
  • 网站实例往届生做网站编辑
  • 深圳市住房建设局网站首页建设网站需要哪些人员
  • seo网站关键词优化费用杭州做网站设计公司
  • 如何做可以微信转发的网站建设官方网站企业登录
  • IPFS技术介绍:探索去中心化存储的未来
  • wordpress 调用中等图片扬州抖音seo
  • 现在流行用什么做网站务川县住房和城乡建设局网站
  • 做网站需要先申请域名百度链接提交地址
  • 万年县建设银行网站拼音全称池州做网站
  • 济南网站建设流程广告设计与制作专业就业方向
  • 【LangChain】P3 Model IO 模块详解:模型调用与参数配置指南
  • 公司网站备案查询网站建设问题清单
  • 石家庄城乡建设局网站6建企业网站 硬件
  • Spring cache整合Redis
  • 网站做伪静态知识付费微网站开发
  • 【从零开始java学习|第二十一篇】包装类是干嘛的
  • 网站建设运营协议书子公司网站备案
  • 晋江市建设招投标网站自己怎么制作网页游戏
  • 衡水建立网站关键词排名优化易下拉稳定
  • 国外网站建设软件排行榜h5快速建站
  • 长沙 php企业网站系统一个公司可以备案几个网站
  • 基本信息型网站有哪些爱做网站免费模板vip
  • 咖啡网站设计模板河北手机版建站系统开发
  • 什么是烟雾病?从症状识别到治疗选择
  • C++内存泄漏排查:从基础到高级的完整工具指南
  • [MT6835] MT6835如何通过指令判断secureboot是否开启