Java web的一些总结(四:关于servlet)

servlet是干什么的?

  • 这部分内容较为底层,可能在使用spring框架后不一定要手写,但作为基础,有必要好好了解下。
  • 是sun公司开发的,目的是开发动态web
  • 具体使用时是:在API中为我们提供了一个接口(我们一般实现HTTPServlet接口),我们需要编写一个类来实现该接口,并在这个类中处理request和response即可。

servlet运行原理

在浏览器中输入请求地址后,浏览器会依据IP地址及端口号找到对应的Web服务器,如果请求的是静态资源,Web服务器直接提供响应;如果请求的是动态资源,Web服务器的通信模块会将该请求传递给Servlet容器的通信模块,Servlet容器负责创建Servlet实例,并将请求(request)中的数据解析出来传递给Servlet。在Servlet处理完数据之后,响应结果(response)也是由容器的通信模块负责返回给Web服务器。后续的Servlet的销毁及管理都由容器来负责。

运行流程如下:

  1. 浏览器依据IP建立与容器的连接
  2. 浏览器将请求数据打包
  3. 容器解析请求数据包,封装request和response对象
  4. 容器依据请求资源路径找到Servlet创建对象
  5. 容器将request和response对象作为参数传入service方法,并调用
  6. 容器将响应数据打包发给浏览器
  7. 浏览器取出结果,生成页面

servlet类怎么写:

public class cookies extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("hello!");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

自己写的类中:

  1. 实现了HttpServlet接口
  2. 重写了doGet和doPost方法
  3. 把doPost指向doGet就行了(doget在使用时会直接把请求参数附在url上面,doPost则不会,所以安全性提高)
  4. 在重写中提取request中信息,把response给set好

需要在web.xml里面添加映射,将url映射到写好的servlet类

hello是自己取的名称,/hello是访问时用的url,com.kuang.servlet是对应的类

Tomcat的配置:类似的文章很多,要对打包的war进行一个配置

https://www.cnblogs.com/Miracle-Maker/articles/6476687.html

servlet的映射:

  1. 一个servlet指定一个映射路径
  2. 一个servlet指定多个映射路径
  3. 一个servlet指定通用映射路径(hello/*)
  4. 指定后缀或者前缀

请求转发和重定向的区别:

上为请求转发,下为重定向。

请求转发的httpcode任然是200,而不是代表着重定向的3xx

servletcontext:

  • context,上下文之意。这里就是让几个servlet类间可以交换信息。
  • ServletContext servletContext = this.getServletContext();
    servletContext.setAttribute("name","hahaha");

原文地址:https://www.cnblogs.com/take-it-easy/p/12639122.html

时间: 2024-10-25 09:32:43

Java web的一些总结(四:关于servlet)的相关文章

java web进阶篇(四) Tomcat数据源

动态web开发的最大特点是可以进行数据库的操作,传统的jdbc操作由于步骤重复性造成程序性能下降. 先来回顾JDBC的操作原理 1.加载数据库驱动程序,数据库驱动程序通过classpath配置. 2.通过DirverManager类取得数据库连接对象. 3.通过Connection实例化PreparedStatement对象,编写sql语句命令操作数据库. 4.数据库属于资源操作,操作完成后要关闭数据库以释放资源. 其实以上操作,1.2.4步骤是重复的,保留3,实际上就是数据源产生的原因. 数据

Java Web开发基础(1)-Servlet

概述 Servlet技术是对webserver的扩展,要理解这个,可能先了解一下什么是Webserver以及它的功能,特别是它的不足是非常有帮助的,可參考:点击打开链接.另外.Servlet也是一个用java语言的Servlet API编写的特殊的java类.它执行在Servlet容器中.它的功能是分析请求,处理请求,构造响应消息,它本来就处于web服务的线上这也非常easy理解.概念上就这么多了. Servlet容器 容器负责管理Servlet类,其内容包含:匹配Servlet,运行Servl

Java Web编程的主要组件技术——Servlet

参考书籍:<J2EE开源编程精要15讲> Servlet是可以处理客户端传来的HTTP请求,并返回响应,由服务器端调用执行,有一定编写规范的Java类. 例如: 1 package test; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 impo

【java web学习笔记(2)】first servlet

src-> new-> servlet 可见,继承自HttpServlet dopost doget分别是post请求和get请求时调用的 import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import java

Java Web高级编程(四)

WebSocket 一.WebSocket的产生 用户希望Web页面可以进行交互,用于解决这个问题的技术是JavaScript,现在Web上有许多的可用的JavaScript框架,在使用极少的JavaScript的情况下就可以创建出丰富的单页面Web--Ajax技术(异步JavaScript和XML). 在采用了Ajax之后,浏览器中的Web应用程序可以与服务器端的组件进行通信,而不需要改变浏览器页面或者刷新.这个通信过程不需要用户知道,并且它可以用于向服务器发送新数据或者从服务器获得新数据.

Java Web(二) -- Http协议 &amp; Servlet

Http协议&Servlet Http协议 1.什么是协议 双方在交互.通讯的时候, 遵守的一种规范.规则. 2.http协议 针对网络上的客户端 与 服务器端在执行http请求的时候,遵守的一种规范. 其实就是规定了客户端在访问服务器端的时候,要带上哪些东西, 服务器端返回数据的时候,也要带上什么东西. 版本 1.0 请求数据,服务器返回后, 将会断开连接 1.1 请求数据,服务器返回后, 连接还会保持着. 除非服务器 | 客户端 关掉. 有一定的时间限制,如果都空着这个连接,那么后面会自己断

Java Web学习(30): 使用JSP+Servlet+JavaBean实现用户登录

实现用户登录 用户名admin,密码admin,登录成功使用服务器内部跳转到login_success2.jsp页面,并且提示登录成功的用 户名,如果登录失败则跳转到login_failure2.jsp页面. 之前我们使用JSP实现过,也JSP+JavaBean实现过,这一次我们更加细化,使用JSP+Servlet+JavaBean实现用 户登录,好多的源码也是在前面写过. 我们先来看整体的目录结构: 再来看看源代码: 实体类Users.java源代码: package com.entity;

Mac下Intellij IDea发布Java Web项目详解四 为所有Module配置Tomcat Deployment

准备工作1:新建第一个JavaWeb项目 准备工作2:新建Module step5 为所有项目配置Deployment 5.1 如图 5.2 [+][Artifact] 5.3 将这里列出的所有内容选中后,点[OK] 5.4 选完是这样,表示,这三个java ee 项目会在tomcat启动后,自动发布到Application context路径下. 5.5 为每个web项目设置Application context [WebWorkSpace1]-[/]=== [http:localhost:p

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第3章.Servlet应用

第3章.Servlet应用 转发与重定向 过滤器与监听器 Servlet并发处理

java web报错The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path

刚用maven建立了一个web项目,结果报错了,解决办法 原文地址:https://www.cnblogs.com/huifeidezhuzai/p/10015531.html