从Eclipse转到IDEA不久,对于idea很多地方还不熟悉,所以遇到问题及时记录,以便以后查阅
1、idea新建servlet项目:File--new project --java项目--选择java ee--勾选web app--设置好名称等就进入第二步(类需要extends HttpServlet))
2、配置tomcat全局设置:点击调试配置--编辑结构--添加一个tomcat(local)--点击configure配置tomcat路径--在Deployment添加一个Artifact名称随意(项目名最好)
3、添加tomcat 依赖:点击项目结构--modules--在dependencies中添加依赖(add加号)-- 选择library-java-选择tomcat
4、至此配置已经完成,开始编写代码:
java类:
package com.servlet.demo;
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;
/**
* Created by 一抹灬茶香 on 2016/11/14.
*/
// 扩展 HttpServlet 类
public class Demo extends HttpServlet {
private String message;
public void init() throws ServletException {
// 执行必需的初始化
message = "Hello World";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 设置响应内容类型
response.setContentType("text/html");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy() {
System.out.println("执行destroy方法");
}
}
web.xml需要添加映射
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.servlet.demo.Demo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
5、运行:启动tomcat,打开浏览器输入url即可,运行的结果和url自己看图吧
http://localhost:8080/Demo/ 访问的是项目下的index.jsp
想要访问代码中的mapping,需要加入自己定义的url(在web.xml中配置<url-pattern>):http://localhost:8080/Demo/HelloWorld
说一些题外的:关于tomcat配置好之后无法访问8080首页问题:
需要在第三部的dependencies中添加依赖-- 选择External source-选择tomcat安装路径/webapps/ROOT文件夹之后就可以访问8080首页面了,如果你在
右边的App context 自定义了链接,需要使用自定义的链接访问,只有一个 “/” 这位localhost:8080
在编写web项目时,如果在类前加了注解,则不需要在web.xml中添加url映射 @WebServlet("/CheckBox")
/**
* Servlet implementation class CheckBox
*/
@WebServlet("/CheckBox")//表示此class映射的url为"/CheckBox",不需要再在web.xml中添加映射,
// 否者重复,报错
public class CheckBox extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
<!--CheckBox 添加注解后不需添加url映射 -->
<!--
<servlet>
<servlet-name>CheckBox</servlet-name>
<servlet-class>com.servlet.demo.CheckBox</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ACheckBox</servlet-name>
<url-pattern>/CheckBox</url-pattern>
</servlet-mapping>
-->
另外,新建html或者jsp时,如果建在项目根目录下,需要在结构中添加新建的文件,具体步骤如下
点击编辑结构--打开下面页面--点击编辑--然后在弹出窗口中点击添加File,选择新建的文件,完成,现在可以运行这个文件了,否者无法打开
(如果将文件新建在web目录下,如图的checkBox2.xml,不需要添加即可直接运行)