javaweb Servlet基本介绍及开发流程
引入
红色部分是静态资源,相应类型会通过Content-Type来辨别。绿色部分是动态资源,通过java代码来响应报文。
Servlet基本介绍
Servlet是Java编程语言中用于处理客户端请求的服务器端程序,通常运行在Web服务器上。是一个能够动态生成响应内容的Java类。基本功能是接收来自客户端(如浏览器)的请求,处理这些请求,并返回响应。
而并不是所有java类都能处理客户端需求,能处理客户端需求并做出一套响应的一套技术标准就是Servlet,而它是运行在服务端的,所以它必须在Tomcat这样的服务容器内运行
前三步都是Tomcat自动执行的,我们需要做的是配置好Servlet并写好代码
1.Tomcat接受到请求,Request代表请求对象,Response代表响应对象
2.Tomcat会根据请求资源的路径,找到Servlet并执行Service方法
3.生成响应报文并响应
4.将Servlet放进Tomcat启动,再打开浏览器请求Servlet即可
打个比方就是下图
Servlet就相当于服务员,只接受需求和响应,接着把参数给其他Java类,数据不足的时候,java类会使用jdbc技术从数据库中提取数据,最后再由Servlet给“顾客”响应
Servlet开发流程
1.创建项目、模型,要从Java项目变成javaweb,需要添加“添加项目支持”(点击项目双击shift并搜索)
web创建一个简单的html表单文件 用get方式请求
2.在src中创建一个类,并继承HttpServlet,这样也相当于实现了Servlet接口
证明:从源码可看出来HttpServlet溯源最终实现了Servlet接口
3.重写并完善service,注意service选第一个,Http那个
service中步骤分别为接受请求参数,处理业务代码,将要响应的参数放入resp
以下是完善后的service
定义业务代码需要从request对象中获取请求中的任何信息(username参数等),将要响应的信息放入request
在 HTML 中,GET 和 POST 是两种常见的 HTTP 请求方法,用于从客户端(浏览器)向服务器发送数据。get所发送数据易被查看,且有长度限制,post则相反。
用get方式获取,则链接形式是“http://127.0.0.1:8080/项目名称/类名?普通文本参数=在客户端所输入的值”,此次用的是get方式,则为“http://127.0.0.1:8080/Servletest/demo1?name=在客户端所输入的值(如张三等)”
若用Post方式,则会把username=...放入请求体中
4.打开WEB-INF中,在web.xml中配置Servlet对应的请求映射路径,后期用注解即可,这里了解一下原理
tomcat会自动帮我们调用service方法,但service方法是实例方法,必须要一个servlet对象来调用它。要让tomcat找到这个对象的字节码,可以通过路径来找,然后通过反射调用此service方法,这就是servlet-class的作用
servlet-name用于关联请求的映射路径,此处还没有映射路径所以爆红
也就是说,<servlet>设置别名,<servlet-mapping>设置别名对应的的url
url-pattern就是映射路径,里边的名字可以随便起。但是由于是路径所以前面必须是“/”
5.RUN-编辑配置-部署-工件然后选择想运行的项目
6.返回html界面,写from的action,内容要和web.xml中的url-pattern(映射路径)一样
7.程序成功运行,实现了想要的效果,输入“ysx”,结果显示no
进入开发者模式,可以看到请求标头等