Servlet
servelet就是动态web的一种技术,它只是sun公司在api中提供的一个接口,如果要开发一个servelet程序,只需要:
- 编写一个类,实现Servlet接口
- 把开发好的java类部署进去web服务器
Servlet就是实现了Servlet接口的java程序。
HelloServlet
Servlet接口有两个默认的类:HttpServlet,
构建一个普通的Maven项目,删除里面的src目录,之后就可以在此项目里面建立model,空的工程就是Maven的主工程。
再为Maven添加servlet、jsp依赖
关于maven父子工程的理解
父项目中会增加一个
<modules>
<module>servelet-01</module> //子项目的名称
</modules>
子项目会有一个
<parent>
<groupId>javaweb-03-servlet</groupId>
<artifactId>servelet-01</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
父项目中的java,可以直接给子项目使用。
maven环境优化
- 修改web.xml为最新,如:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
</web-app>
- 将maven的结构构建完整。
- 实现Servlet接口,继承HttpServlet
package com.whx.servlet;
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 HelloServlet extends HttpServlet {
//由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();//响应流
writer.print("hello");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
- 编写Servlet的映射,因为我们写的是JAVA程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以需要在web服务中注册写好的Servlet。并且给他一个浏览器可以访问的路径。即在web.xml里输入
<!--注册servlet-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.whx.servlet.HelloServlet</servlet-class>
</servlet>
<!--servlet的请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
- 配置Tomcat,配置是要注意项目发布的路径。
- 启动测试。
启动时会创建index.jsp
内部代码为
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
启动中会创建一个target文件夹。
通过预先设置的请求地址,可以返回直接设置的方法。