Java知识点整理–Servlet
Apache Tomcat
- Tomcat是Apache旗下的一款免费的WEB应用程序服务器.
- J2EE是一组技术规范和指南,具体实现由软件厂商决定.
- Tomcat是J2EE Web(Servlet 与JSP)标准的实现者.
- J2SE还是J2EE运行的基石,运行Tomcat离不开J2SE
Servlet
- Servlet(Server Applet)服务器小程序,用于动态生成动态Web内容.
- Servlet是J2EE最重要的组成部分.
- Tomcat -对应服务器; Servlet - 对应服务器处理程序
Eclipse配置Tomcat环境
- 打开服务器配置界面(或从Pereference-Server-Runtime Environment进入)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4204998e610768ee495bf8883ec3ea11.png)
- 选择对应的Tomcat版本
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a4e8a3ecbe7fda10e1987d8071b8b645.png)
- 设置Tomcat程序目录及jre环境
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1304b36a7283a4dc5873f423538ce98c.png)
- 双击配置好的服务器进行详细配置(默认将WEB项目发布至Tomcat安装目录的webapps目录下)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ccb1bea409cb058b96002220e755cfba.png)
- 若安装的为解压版Tomcat,启动时可能会报"java.lang.IllegalStateException: 无输出目录"的错误,原因为安装文件夹无写入权限,修改Tomcat安装目录权限即可.
第一个Servlet
- 新建WEB项目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0884b69a779b24b98d257b0036350979.png)
- 勾选自动生成WEB.xml
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2c35d56750908520b1a46bd156be78e0.png)
- web.xml
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>com.lgw.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/hi</url-pattern>
</servlet-mapping>
package com.lgw;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
public class FirstServlet extends HttpServlet {
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
String name = req.getParameter("name");
String html = "<h1 style='color:red'>hi," + name + "!</h1><hr/>";
PrintWriter out = res.getWriter();
out.println(html);
}
}
标准的Java Web工程结构
组织结构 | 描述 |
---|
tomcat安装目录/webapps | 存放Tomcat应用的根目录 |
web应用目录 | java web应用目录,一般目录名称即为项目工程名 |
web应用目录/index.html|.jsp | 默认首页 |
WEB-INF | web应用安全目录,用于存放配置文件,相关的类,jar包等 |
WEB-INF/web.xml | 部署描述符文件,是该web项目的核心配置文件 |
WEB-INF/classes | 存放编译后的classes文件 |
WEB-INF/lib | 存放web应用依赖的jar文件 |
META-INF/MANIFEST.MF | 包含web应用的版本等信息 |
Servlet详细开发步骤
- 创建Servlet类,继承HttpServlet
- 重写service方法,编写程序代码
- 配置web.xml,绑定URL
- 浏览器访问路径
http://IP地址:端口/context-path/url-mapping
本地IP也可以使用localhost
context-path为上下文路径,默认为工程名 - 请求参数
请求参数是指浏览器通过请求向Tomcat提交的数据
请求参数通常是用户输入的数据,待Servlet进行处理
request.getParameter() - 接受单个参数
request.getParameterValues() - 接受多个同名参数 - Get与Post请求方法区别
Get是将数据通过在URL附加数据显式向服务器发送数据
例如:http://localhost:8080/FirstServlet/sample?name=lisi
Post方式会将数据存放在请求体中隐性向服务器发送数据
http://localhost:8080/FirstServlet/sample
请求体:name=lisi
Tips:service()方法对Get和Post无差别处理.要想分开处理,可以替换成 Get请求 - doGet()方法;Post请求 - doPost()方法.
Servlet生命周期
- 装载 - web.xml
- 创造 - 构造函数
- 初始化 - init()
- 提供服务 - service()
- 销毁 - destroy()
使用注解简化Servlet配置
- 使用注解,可以不用再往web.xml里写servlet类对应的映射配置
格式:@WebServlet("/anno")
启动时加载Servlet
- web.xml使用
<load-on-startup>
设置启动加载 <load-on-startup>
0-9999</load-on-startup>
,数字越小优先权越高- 启动时加载常用于系统的预加载
- Tips:使用注解配置某个Servlet类启动时加载时,@WebServlet(urlpattern = “/unused”,loadOnStartup = 0-9999),其中urlpattern无实际作用,但也必须设置.