Sevlet
Servlet简介
- Servlet就是sun公司开发 动态web 的一门技术
Sun公司在这些API提供一个借口叫做: servlert程序
- 编写一个类,实现servlet借口
- 把开发好的类部署到web服务器
- 把实现了servlet接口的程序叫做 servlet
HelloServlet
- 构建一个普通的
maven项目
,删掉src目录,以后这个工程就是主工程,通过在里面建立moudel进行学习 在主工程中添加依赖
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <!-- 旧版,注释掉 <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> --> </dependencies>
关于
maven父子工程
的理解父项目中会有
<modules> <module>servlet-01</module> </modules>
子项目中会有(没有需要手动添加)
<parent> <artifactId>javaweb-02-servlet</artifactId> <groupId>org.example</groupId> <version>1.0-SNAPSHOT</version> </parent>
maven环境优化
修改web.xml
<?xml version="1.0" encoding="UTF-8"?> <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程序
注意:servlet借口有sun公司编写了两个默认的实现类 HttpServlet
- 编写一个普通类
通过继承HttpServlet实现Servlet接口
注:如果出现导入失败的情况,可能是镜像还没加入该文件,需要自己去仓库里面下载,放入到相应的文件夹
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,Servlet"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }
编写Servlet的
映射
为什么需要映射?
我们写的是Java程序,但是需要通过浏览器进行访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的servlet,还需要给他一个浏览器能够访问的路径。
<!--注册servlet--> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.yu.servlet.HelloServlet</servlet-class> </servlet> <!--servlet的请求路径--> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
配置 tomcat
注意核对一下几项: Application server JRE HTTP port JMX port
启动错误原因总结:
pom文件没有配置好,检查子项目的配置文件,把重复的属性值删除(文件仅供参考)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>javaweb-02</artifactId> <groupId>com.yu</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>servlet-01</artifactId> <packaging>war</packaging> <name>servlet-01 Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>
检查导入依赖,如果在external libraries 没有相应依赖会导致启动失败
javax.servlet.jsp.api javax.sevlet.api maven:junit maven:hamcresrt-core
检查tomcat配置
环境变量 deployment server
配置Tomcat
1、如果没有 artifacts
,可以刷新一下项目的maven库;
或者到setting中: settings—>bulid…—>Bulid Tools —> Maven—>Improting—>选中Impor Maven projects automatically—>Apply —> OK
2、看看效果
评论 (0)