首页 > 代码库 > 利用IntelliJ IDEA社区版开发servlet
利用IntelliJ IDEA社区版开发servlet
在几个java IDE中,IntelliJ IDEA应该是最养眼的了,不过免费的社区版不能配置web服务器,所以拿来开发servlet感觉困难重重。经过一番探索,终于闯出了一条便捷的路。快速编码,运行,调试都没问题,我所使用的版本是14.0.1。下面就来介绍一下。
1、下载jetty。jetty是一个servlet容器,这一步是能够运行和调试的重点,因为不能配置web服务器,所以我们需要一个嵌入式的servlet容器。地址: http://www.eclipse.org/jetty/ 。下载之后解压备用,我所用的是9.2.5版本。
2、新建java项目。以下这一步的时候注意要勾选。
这是因为我们要在内部运行jetty,就得有一个入口,勾选这个之后会生成一个Main类,里面有main函数,这就是入口函数。之后就是填写项目名称,可以随便填写一个,我写的是demo。
3、打开项目配置选项。建好项目之后就是配置了,File->ProjectStructure打开项目配置选项。
4、配置jetty全局库。如下图,
把jetty运行所需要的库加进全局库里。放到全局库而不是放到当前项目中是因为以后每个项目都需要,以后新的项目不用再复制进去。需要的库如下:
5、添加jetty运行库到新建的项目中,如下图,
右击刚建好的jetty-server库,点击Add to Modules,在弹出的窗口中选择demo即可。
6、建立web所需要的目录和文件。在demo下新建二级目录,为web/WEB-INF。
7、修改生成class文件的路径,如下图,
把path修改到web/WEB-INF/classes下。
8、在src下新建一java文件,就是一个servlet,继承自HttpServlet。代码如下,
9、修改Main.java入口文件,如下代码,
10、运行或调试。至此,我们已可以在IntelliJ IDEA内运行起来了,效果如下,
看到这个就说明服务器已运行。在浏览器中打开http://localhost:8090/demo/Main即可看到结果。
注意:修改代码后,一定要先关闭正在运行的项目,再重新开始才行,不然启动时就会出现端口会占用的错误。这个时候有个方法可以补救,那就是关掉整个项目窗口,会有是否要结束连接的提示,点击OK即可,如下图,
11、配置文件web.xml。如果我们要布在tomcat或其它的服务器上,那就得在web/WEB-INF目录下添加一个配置文件web.xml了,代码如下,
12、添加第三方jar。如果我们有其它的第三方jar要添加,可新建一目录web/WEB-INF/lib,然后把jar都放到这下面,右击lib选择"Add as Library"即可。
13、保存用户项目模板。这时我们把刚才的项目保存成用户项目模板,以后新建的时候就会得到 相同文件结构和配置的项目,方便开发。方法为菜单Tools->Save Project as Template。这时整个项目的结构如下,
14、添加servlet文件模板。最后还有一个要做的就是添加servlet的模板,这样可直接生成一个Servlet类。如下图,
在系统配置窗口中添加,内容如下,
最后上传所需的项目文件:
1、下载jetty。jetty是一个servlet容器,这一步是能够运行和调试的重点,因为不能配置web服务器,所以我们需要一个嵌入式的servlet容器。地址: http://www.eclipse.org/jetty/ 。下载之后解压备用,我所用的是9.2.5版本。
2、新建java项目。以下这一步的时候注意要勾选。
这是因为我们要在内部运行jetty,就得有一个入口,勾选这个之后会生成一个Main类,里面有main函数,这就是入口函数。之后就是填写项目名称,可以随便填写一个,我写的是demo。
3、打开项目配置选项。建好项目之后就是配置了,File->ProjectStructure打开项目配置选项。
4、配置jetty全局库。如下图,
把jetty运行所需要的库加进全局库里。放到全局库而不是放到当前项目中是因为以后每个项目都需要,以后新的项目不用再复制进去。需要的库如下:
5、添加jetty运行库到新建的项目中,如下图,
右击刚建好的jetty-server库,点击Add to Modules,在弹出的窗口中选择demo即可。
6、建立web所需要的目录和文件。在demo下新建二级目录,为web/WEB-INF。
7、修改生成class文件的路径,如下图,
把path修改到web/WEB-INF/classes下。
8、在src下新建一java文件,就是一个servlet,继承自HttpServlet。代码如下,
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; public class MainServlet extends HttpServlet { /** * 处理get或post请求 * * @param request * @param response * @throws javax.servlet.ServletException * @throws java.io.IOException */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("Servlet MainServlet."); } // <editor-fold defaultstate="collapsed" desc="HttpServlet 内部处理方法"> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } // </editor-fold> }
9、修改Main.java入口文件,如下代码,
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; public class Main { // 端口 private static final int PORT=8090; // 根路径 private static final String contextPath="/demo"; public static void main(String[] args) throws Exception { // 建立jetty服务器 Server server=new Server(PORT); ServletContextHandler context=new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath(contextPath); server.setHandler(context); // 添加servlet,可添加多个 context.addServlet(new ServletHolder(new MainServlet()),"/Main"); // 启动服务器 server.start(); server.join(); } }
10、运行或调试。至此,我们已可以在IntelliJ IDEA内运行起来了,效果如下,
看到这个就说明服务器已运行。在浏览器中打开http://localhost:8090/demo/Main即可看到结果。
注意:修改代码后,一定要先关闭正在运行的项目,再重新开始才行,不然启动时就会出现端口会占用的错误。这个时候有个方法可以补救,那就是关掉整个项目窗口,会有是否要结束连接的提示,点击OK即可,如下图,
11、配置文件web.xml。如果我们要布在tomcat或其它的服务器上,那就得在web/WEB-INF目录下添加一个配置文件web.xml了,代码如下,
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" 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"> <servlet> <servlet-name>MainServlet</servlet-name> <servlet-class>MainServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MainServlet</servlet-name> <url-pattern>/Main</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app>
12、添加第三方jar。如果我们有其它的第三方jar要添加,可新建一目录web/WEB-INF/lib,然后把jar都放到这下面,右击lib选择"Add as Library"即可。
13、保存用户项目模板。这时我们把刚才的项目保存成用户项目模板,以后新建的时候就会得到 相同文件结构和配置的项目,方便开发。方法为菜单Tools->Save Project as Template。这时整个项目的结构如下,
14、添加servlet文件模板。最后还有一个要做的就是添加servlet的模板,这样可直接生成一个Servlet类。如下图,
在系统配置窗口中添加,内容如下,
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 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 ${USER} on ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}. */ public class ${NAME} extends HttpServlet { /** * 处理get或post请求 * * @param request * @param response * @throws javax.servlet.ServletException * @throws java.io.IOException */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("Servlet ${NAME}."); } // <editor-fold defaultstate="collapsed" desc="HttpServlet 内部处理方法"> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } // </editor-fold> }到此,整个过程完成了,不过你不要被这么长的步骤吓着,其实很多都是基础,重点也就是如何嵌入jetty而已。
最后上传所需的项目文件:
利用IntelliJ IDEA社区版开发servlet
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。