我是灼灼,一只初学Java的大一金渐层。
向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄;追逐过王尔德、王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔;热爱文学的浪潮,白日梦到底却总在现实里清醒;艳羡平静又极度渴盼奔跑的力量。
欢迎与我交流鸭· QQ:1517526827;
个人博客:https://blog.csdn.net/weixin_52777510?spm=1001.2101.3001.5343
服务器servlet接口开发~
参考博客:https://blog.csdn.net/qq_35522272/article/details/71435602
参考博客:https://blog.csdn.net/qq_41838901/article/details/105710702
参考博客:https://blog.csdn.net/qq_41838901/article/details/105731160
-
搭建简易接口开发(学习web开发和servlet基础),首先要了解客户端的网络请求机制(学习网络编程和网络协议知识);
-
学习接口开发,编写jsp页面之前,我们首先要搭建一个web项目,并且配置好tomcat服务器。(创建web项目之前,先在local配置好服务器噢!)
关于这一步呢,参考博客来自行搭建;
其中有几个小小的问题:
- 新版本的IDEA在实际操作中选项略有不同,不过根本上还是相同滴!
- 仍然可以选择Java enterprise来进行搭建,点击finish后发现没有web包怎么办?
- 不要着急,右击创建好的项目,选择Add FrameWork Support…就阔以辽!
- 第五步中选择Artifact这一项idea已经选好啦,不需要再做一遍了;
+号那里没有出现Artifact可能就是这个原因。
- servlet-api.jar包下载:
链接:https://pan.baidu.com/s/1ZZ_FBGm-_iixJ8RnQzt44w
提取码:bzuc - 开发一个servlet需要几个步骤:
1、创建web应用项目
2、编写servlet代码
3、部署到tomcat中
web.xml文件的内容1(补充就可以了,来自第一个博客):
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
//静态配置文件,整个项目的入口
<listener>
<listener-class>com.szh.utils.ListenerLoadConfig</listener-class>
</listener>
<servlet>
//别名 最终客户端访问的接口的名称后缀
<servlet-name>Test</servlet-name>
//接口的具体类名,路径必须正确
<servlet-class>com.szh.servlets.Test</servlet-class>
</servlet>
<servlet-mapping>
//别名须统一
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
web.xml文件的内容2(来自第二个博客):
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
Util包中的数据库连接类DbUtil就按照jdbc中学到的连接代码就可以了。
有关监听listener的内容还没有学过,暂且放放。
接口使用的servlet技术,servlet技术其实是java接口的最核心的技术,spring框架其实也就是对servlet的封装。
首先需要继承自servlet:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
继承自HttpServlet之后会自动实现get和post方法。这就是常说的http请求中的方法。客户端做网络请求就会到这两个方法中。
可以看到有两个参数HttpServletRequest,和HttpServletResponse。这两个分别对应http请求中的请求参数,和返回接口,也就是客户端请求的参数都在HttpServletRequest中可以拿到,而服务器返回的接口都可以存放在HttpServletResponse,中这样客户端就能拿到想要的数据了。
思考一下究竟如何才能够实现web的完整开发呢?
以register为例,参考第一个博客中的内容:
- 配置web.xml
- 配置你数据库连接DBUtil
- 配置listener(暂且不提)
- load加载驱动(这个不知道是不是可以简化?)
- 编写注册方法dao包
- 编写测试注册接口代码
- 编写请求方法
以login为例,参考第二个博客中的内容:
- 配置web.xml
- 创建login.html
- 创建一个类LoginServlet
- 直接控制台tomcat测试;
实现跳转页面需要有两个html文件
一个servlet的生命周期
servlet的周期就是: 实例化 —初始化—提供服务—销毁—被回收
1、实例化
当某用户输入提交信息后,访问路径对应的servlet会实例化。而且只会实例化一次(单实例),无论用户访问多少次~
在LoginServlet类里写一个构造方法,可以发现发起请求的时候,会首先调用这个方法实例化对象。
2、初始化
因为Loginservlet继承自HttpServlet,所以init初始化方法也被继承。
init在构造方法后执行。
3、提供服务
服务就是 doGet ,doPost,service 等,对收到请求的一些处理。
4、销毁
destroy()
当有如下情况时,会销毁一个servlet:
(1)关闭tomcat时:
(2)该Servlet所在的web应用重新启动;
配置文件server.xml中:
<Context path="/" docBase="D:\\Java\\workspace\\test\\web" debug="0" reloadable="false" />
reloadable 代表是否自动重启,就是当检测到服务有更新,即tomcat自动重启,当重启的时候就会destory 。
5、回收
这个就涉及到垃圾回收了,当该Servlet被销毁后,就满足垃圾回收的条件了。 当下一次垃圾回收GC来临的时候,就有可能被回收。
以上内容可以对接口有一个大致的了解~
如果对你有帮助的话不要忘记一键三连噢~
谢谢鸭~
初次编写于2021/2/19日;