Servlet核心技术(上)

简介: Servlet核心技术(上)

基本概念


1.C/S架构(Client/Server,客户端/服务器模式),是一种比较早的软件体系结构,也是生活中很常见的结构。这种结构将需要处理的业务合理地分配到客户端和服务器端,客户端通常负责完成与用户的交互任务,服务器通常负责数据的管理。 – QQ软件app


2.B/S架构(Browser/Server,浏览器/服务器模式),是互联网兴起后的软件体系结构,该结构将系统功能实现的主要业务逻辑集中到服务器端,极少数业务逻辑在浏览器实现,浏览器通常负责完成与用户的交互任务,服务器通常负责数据的管理。-- 网页版QQ

B/S架构


4.png


Tomcat服务器


java 代码的一个很重要的作用就是进行数据的处理,但是目前来说我们运行编写的代码,只有一次性,也就是运行完毕后,如果需要再次运行则需要再次手动启动代码的执行。但是我们无法提前用户会何时发送请求,也就无法决定我们编写的 java 代码应该什么时候启动运行。而且手动运行也变得不现实。根据 java 的网络编程内容,我们可以使用代码编写一个容器(对象),这个容器可以根据客户的请求来启动并运行我们编写的数据逻辑代码。


所谓服务器其实就是代码编写的一个可以根据用户请求实时的调用执行对应的逻辑代码的一个容器。在普通用户看来就是一个安装程序。我们只需要将服务器在操作系统上进行安装,并将我们事先编写好的逻辑处理代码根据规则放到服务器的指定位置,启动服务器,那么服务器就自动的会根据接收到请求调用并执行对象的逻辑代码进行处理。


3.png


管理和布置web应用

响应针对静态页面或图片的请求

将动态请求委托给其他程序(Servlet容器、CGI等等技术)


Servlet容器


如果浏览器中请求的是动态资源的话,web服务器就无法处理了。Server Applet(Servlet)来对动态请求进行处理返回动态资源。所有就有一套叫做Servlet容器的东西来统一加载和管理Servlet。


2.png2.png


这样一来HTTP服务器不直接跟servlet打交道,而是把请求交给Servlet容器去处理,Servlet容器会将请求转发到具体的Servlet,如果这个Servlet还没创建,就加载并实例化这个Servlet,然后调用这个Servlet的接口方法。


HTTP协议


HTTP请求格式


POST /task01_demo01/demo1.html HTTP/1.1
Host: localhost:8088
Content-Length: 21
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)
name=scott&pwd=123456  // 请求体


HTTP响应格式


HTTP/1.1 200 OK 
Content-Type: text/html
Content-Length: 588
Date: Thu, 08 Sep 2021 12:59:54 GMT
<html><head><title>示例1</title></head>  // 响应体
<body><h1>这是一个HTML页面</h1></body>
</html>


POST和GET请求


1.GET请求

发出GET请求的主要方式:

(1)在浏览器输入URL按回车

(2)点击超链接

(3)点击submit按钮,提交 表单

GET请求特点:会将请求数据添加到请求URL地址的后面,只能提交少量的数据、不安全


2.POST请求

发出POST请求的方法如下:

点击submit按钮,提交 表单


POST请求的特点: 请求数据添加到HTTP协议体中,可提交大量数据、安全性好


案例


在浏览器中输入表单信息,之后将表单信息打印到idea的控制台,并且将获得的数据响应到浏览器中。


1.png


创建项目 – java enterprise 勾选web 之后配合服务器 将代码部署到服务器中


编写.html文件 action的值为服务器的地址,每一个表单都是需要使用name属性的。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="demo01" method="get">
        名字:<input type="text" name="name" /> <br/>
        <input type="submit" value="提交">
    </form>
</body>
</html>


编写servlet类 – 使用@WebServlet注解,地址就是浏览器要输入的地址,前面要写一个/ 该类继承HttpServlet方法。并且重写doget和dopost方法。


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/demo01")
public class demo02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=UTF-8");
        String name = req.getParameter("name");
        System.out.println(name);
        PrintWriter writer = resp.getWriter();
        writer.print(name);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost方法运行");
    }
}



相关文章
|
14天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
14天前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
|
14天前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。
|
11天前
|
存储 设计模式 搜索推荐
早期javeweb技术 JSP JDBC JSTJ Servlet BooStrap(下)
早期javeweb技术 JSP JDBC JSTJ Servlet BooStrap(下)
8 1
|
2月前
|
存储 安全 Java
Java的servlet和jsp技术
Java的servlet和jsp技术
36 11
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
序-Servlet和SpringMVC的联系和区别-配置路径先想好使用的使用的方法,然后匹配的需要的技术
|
10天前
技术笔记:Servlet作业2
技术笔记:Servlet作业2
|
11天前
|
XML 前端开发 Java
早期javeweb技术 JSP JDBC JSTJ Servlet BooStrap(上)
早期javeweb技术 JSP JDBC JSTJ Servlet BooStrap(上)
9 0
|
2月前
|
前端开发 Java API
深入理解Servlet技术:Java Web开发的核心
【4月更文挑战第3天】Servlet是Java Web开发的核心技术,定义了响应客户端请求的接口。它遵循请求-响应模型,处理动态Web内容,生命周期由Web容器管理。Servlet API包含接口和类,如HttpServletRequest和HttpServletResponse,支持请求处理和会话管理。尽管现代开发常使用Spring MVC等框架,但理解Servlet对于理解框架底层机制至关重要。掌握Servlet基础知识对构建健壮的Web应用仍然必要。
|
2月前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式