0.前言
笔者之前接触过SSM Spingboot等框架但对基础知识理解不足,现从servlet开始将Java web的基础知识进行梳理。
1.准备工作
1.1安装tomcat(略)
1.2下载javax servlet-api.jar(略)
2.代码编写
2.1HelloServlet.java
如ide报错请将servlet-api.jar 加入extreme library
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class MyServlet extends HttpServlet {
private String message;
@Override
//从写init方法并在生命周期开始时打印init
public void init() throws ServletException {
super.init();
System.out.println("init");
message="helloWorld";
}
//处理请求的方法
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException , IOException {
res.setContentType("text/html");
PrintWriter pw =res.getWriter();
pw.println("<h1>"+message+"</h1");
}
//servlet销毁时的方法
public void destroy(){
System.out.println("destroy");
}
}
2.2web.xml
注意两个servlet-name一致
<web-app xmlns="http://java.sun.com/xml/ns/j2ee">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3.项目部署
3.1编译MyServlet.java
可以使ide图形化界面编译也可以使用javac编译
javac编译请使用-extdirs参数将servlet-api.jar 加入
javac -extdirs D:\APP\works\apache-maven-3.6.1\mvnlib\javax\servlet\servlet-api\2.5 MyServlet.java
得到.class java字节码文件
3.2部署到tomcat
- 在tomcat安装目录/webapps新建helloworld(可任取)文件夹,作为项目的文件夹。
- helloworld目录下WEB-INF文件夹
- WEB-INF下新建classes文件夹
- 将将web.xml复制到WEB-INF下
- 编译出来的MyServlet.class java字节码文件复制到classes下
3.3启动项目
进入tomcat安装目录/bin
双击startup.bat启动tomcat服务器
5.项目预览
打开浏览器输入127.0.0.1:8080/helloworld/hello
其中helloworld是项目名称
hello为web.xml文件中url-pattern中的url映射
可以看到项目启动的时 控制台会输出init字样
而页面则是Servlet中的message