首先来创建一个maven的web工程:
记得勾画Creat选项,及选中结尾是webapp的骨架
确定让他导入
点击后它会自动添加上src文件夹及其中内容
Servlet的创建:
在main文件夹下建立一个java文件夹并将其设置为Source Root:
在java中创建一个Servlet(如果无法找到creat Servlet的选项也没关系,可以建一个java类,然后继承http servlet)
然后编写Servlet中的内容:
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doGet(request,response);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
request.getRequestDispatcher("/index.jsp").forward(request,response);
}
}
request.getRequestDispatcher("/index.jsp").forward(request,response);属于一个方法调用,只不过在当前执行文件的过程中转向执行目标文件,两个文件属于同一次请求,前后共用一个request。
配置web文件:
在web.xml中增加servlet的相关内容(根据个人情况配置)
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>First.Servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
配置pom文件:
在pom.xml文件中增加两个依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
provided的含义是保证在编写Servlet是他不会报红,且在后面运行时不会与maven所带的jar冲突。
配置供跳转的jsp:
可以创建一个Servlet中使用的index.jsp
<html>
<body>
<h2>狗狸子!</h2>
</body>
</html>
运行Servlet及遇到的问题与处理方法:
然后点击右侧maven中的此处
输入tomcat:run指令
便可以在控制台找到
打开浏览器,将其复制到搜索栏中,并添加servlet的名称,并点击回车
会发现浏览器并未打开我们想要的jsp,而是出现以下情况
这时候,我们只需要在web项目的pom文件中增加tomcat7配置即可(用于修改端口号)
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration> //这个是修改端口号 //默认的是8080
<port>9999</port>//这个就是那个被修改的端口号
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
此时再启动Servlet,只不过输入的指令变为了tomcat7:run
在浏览器输入这段,并加上servlet的名称:
(此时也能看出端口号已经改变)
得到最终结果