一. 新建项目
-
新建项目
注意先选择Java EE版本,然后才能调整web application版本 -
选择项目路径
-
web->WEB-INF下面新建两个文件夹lib和classes
-
点击File->Project Structure
path页面设置如下,修改为刚才创建的那个classes文件夹
依赖页面导入Tomcat的jar包,下图所示:
-
点击Run->Edit Configuration 或者右上角的Edit Configuration
Application context 修改为你的项目的名字 -
点击右上角启动Tomcat,如果启动成功,将会打开页面http://localhost:8080/TestWeb/
如果启动失败,那么点击右上角的浏览器图标将只能查看jsp源代码
二.关于servlet中的url跳转问题
- 方法一: 使用xml控制url
index.jsp
<form method="post" action="servlet/HelloSevlet.do">
<input type="text" name="username">
<input type="submit" name="submit" value="提交">
</form>
HelloServlet.java
package com.test.web;
import java.io.IOException;
public class HelloServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
response.getWriter().println("测试============");
System.out.println("测试================");
String str = request.getParameter("username");
System.out.println(str);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doPost(request,response);
}
}
web.xml
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.test.web.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloSevlet.do</url-pattern>
</servlet-mapping>
-
方法二: 使用servlet注解控制url
每开发一个Servlet,都要在web.xml中配置Servlet才能够使用,这实在是很头疼的事情,所以Servlet3.0之后提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程
index.jsp
//相对路径
<form method="post" action="servlet/LoginServlet.do">
<input type="text" name="username" value="">
<input type="submit" name="submit" value="登录">
</form>
<form method="post" action="<%=request.getContextPath()%>/servlet/LoginServlet.do">
<input type="text" name="username" value="">
<input type="submit" name="submit" value="登录">
</form>
<form method="post" action="${pageContext.request.contextPath}/servlet/LoginServlet.do">
<input type="text" name="username" value="">
<input type="submit" name="submit" value="登录">
</form>
这三个表单效果一样的
HelloServlet.java
package com.test.web;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//@WebServlet("/servlet/LoginServlet.do")
//或者下面这样子
@WebServlet(name = "LoginServlet" ,
urlPatterns = {"/servlet/LoginServlet.do"})
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("哈哈"+"===========================");
String str = request.getParameter("username");
System.out.println(str);
response.getWriter().println("hello"+str);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
注意其中的urlPatterns必须要以斜杠开头,表示根目录下面,否则会报错Invalid <url-pattern> [servlet/LoginServlet.do] in servlet mapping
和Failed to start component[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/TestWeb]]
三. web项目打包为war格式
-
点击File -> Project Structure
-
点击Artifacts , 然后点击加号+ 按照下图设置
-
Type选择压缩包的形式archive
-
Build
-
最后就可以在左侧栏看到了 *.war格式的文件
-
把刚才的*.war重命名一下,然后上传到服务器的tomcat->webapps目录下面即可访问