用IDEA开发简单的Servlet
最近学习java,主要是servlet相关的内容。IDEA和servlet之前都没有碰过,所以做了一下小实验,走了一些弯路;这里把一个完整的步骤写出来,加深一下印象。
IDEA创建项目步骤
1. 在idea 14种新建一个java项目,类型是web Application
如下图
将创建的项目命名为DemoServlet
2. 建一个servlet的类,在project栏中的项目src目录上右键新建一个Servlet类,
命名为FirstServlet, 包名为javademo
3. 加入需要依赖的tomcat目录下的servlet-api.jar包
4. 编写FirstServlet的代码,第三步加入了对servlet-api的引用后,在idea就可以智能提示servlet的成员了,写好的简单代码如下:
public class FirstServlet extends javax.servlet.http.HttpServlet { protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.write("<h1> hello first servlet!</h1>"); } }
5. 编写web.xml配置文件,我们用向导自动生成servlet,idea会在web.xml中写好 <servlet>的配置,我们还需要增加<servlet-mapping>配置,完成的配置文件如下:
<?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_3_1.xsd" version="3.1"> <servlet> <servlet-name>FirstServlet</servlet-name> <servlet-class>javademo.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FirstServlet</servlet-name> <url-pattern>/demo</url-pattern> </servlet-mapping> </web-app>
至此, 一个简单的servlet网页程序就编写完成了,接下来我们看看如何部署。
在tomcat上部署
我在window上用的是xampp自带的tomcat,主要看下如何在tomcat下部署我们刚刚创建的FirstServlet web应用。
1. 将源码目录里包含index.jsp的web目录拷贝到tomcat的webapps目录下,重命名为FirstServlet
2. 在这个目录的WEB-INF目录下增加一个classes的目录
3. 在idea中编译工程后,在out目录下有编译好的.class文件, 我们将项目产出目录out\production\ServletDemo下的javademo文件夹拷贝到第二步创建的classes目录中,最后的目录结构如下
此处注意,classes中的目录结构要和包保持一致
4. 重启tomcat, 就可以在http://127.0.0.1:8080/FirstServlet/demo 这个地址看到我们的servlet页面了。
需要注意这个url的路径,FirstServlet是在webapps的目录名,demo是在web.xml中的servlet-mapping中控制的