Intellijidea2017.03版创建一个简单的Servlet的demo

近期正在学习使用idea编译器编写java web,现把我在第一次尝试使用idea编译器编写一个简单地servlet的demo过程中遇到的问题及解决方法记录下来,供道友们参考:

红色部分为idea2017.03版做的过程中遇到的额外问题及解决办法,其余与老版本的做法相似,下面介绍的做法采用的是较老的版本。

一、创建并设置javaweb工程
1.创建javaweb工程
File --> New --> Project...

Intellijidea2017.03版创建一个简单的Servlet的demo_第1张图片

点击Project后出现如下界面,选择Java Enterprise,选中下图圈中部分

Intellijidea2017.03版创建一个简单的Servlet的demo_第2张图片

在这一步中记得看看jdk的路径对不对,我就是因为没看这个,结果默认是idea自带的idk,结果后面编辑的时候出了好多错误!!!!!!!!!!!!!!

点击Next后弹出下图弹出框,设置工程名字:

Intellijidea2017.03版创建一个简单的Servlet的demo_第3张图片

创建完成后工程结构如下:

Intellijidea2017.03版创建一个简单的Servlet的demo_第4张图片


2. Web工程设置
2.1 在WEB-INF 目录下点击右键,New --> Directory,创建 classes 和 lib 两个目录

Intellijidea2017.03版创建一个简单的Servlet的demo_第5张图片

classes目录用于存放编译后的class文件(不需要手动处理),lib用于存放依赖的jar包(需要手动存放jar包)

使用Idea2017.03版本的idea,创建的web项目,默认是没有web.xml文件的,我们需要自己手动添加:

1、ctrl+alt+shift+s 进入项目资源配置中心,也可点击file-->project Structure进入
2、选择facets,点击中间的绿色+,选择 Web,点击path右侧的+号,选择web.xml,在弹出的页面点击确定即可

2.2 File --> Project Structure...,进入 Project Structure窗口,点击 Modules --> 选中项目“WebClient” --> 切换到 Paths 选项卡 --> 勾选 “Use module compile output path”,将 “Output path” 和 “Test output path” 都改为之前创建的classes目录

Intellijidea2017.03版创建一个简单的Servlet的demo_第6张图片

即将后面编译的class文件默认生成到classes目录下

2.3 点击 Modules --> 选中项目“WebClient” --> 切换到 Dependencies 选项卡 --> 点击右边的“+”,选择 “JARs or directories...”,选择创建的lib目录

Intellijidea2017.03版创建一个简单的Servlet的demo_第7张图片

Intellijidea2017.03版创建一个简单的Servlet的demo_第8张图片

选择Jar Directory

Intellijidea2017.03版创建一个简单的Servlet的demo_第9张图片

Intellijidea2017.03版创建一个简单的Servlet的demo_第10张图片

3. Tomcat配置
3.1 Run -> Edit Configurations,进入“Run Configurations”窗口,点击"+"-> Tomcat Server -> Local,创建一个新的Tomcat容器

Intellijidea2017.03版创建一个简单的Servlet的demo_第11张图片

3.2 在"Name"处输入新的服务名,点击“Application server”后面的“Configure...”,弹出Tomcat Server窗口,选择本地安装的Tomcat目录 -> OK

Intellijidea2017.03版创建一个简单的Servlet的demo_第12张图片

3.3 在“Run Configurations”窗口的“Server”选项板中,去掉勾选“After launch”,设置“HTTP port”和“JMX port”,点击 Apply -> OK,至此Tomcat配置完成。

Intellijidea2017.03版创建一个简单的Servlet的demo_第13张图片

4.WebClient测试
4.1 Run -> Edit Configurations,进入“Run Configurations”窗口,选择之前配置好的Tomcat,点击“Deployment”选项卡,点击“+” -> “Artifact”-> 选择创建的web项目的Artifact...
修改“Application context”-> Apply -> OK

Intellijidea2017.03版创建一个简单的Servlet的demo_第14张图片

说明:此处的Application context是指定本工程的根目录

4.2 在index.jsp文件中的body之间添加要显示的内容,然后点击“运行”的绿色三角

Intellijidea2017.03版创建一个简单的Servlet的demo_第15张图片

打开浏览器,输入:localhost:8080/WebClient


至此,intellij idea创建并设置javaweb工程全部完成,下面是在其中编写并运行Servlet


二、Servlet简单实现

1. 编写servlet源文件
在src目录下新建HelloWorld.java,并编写一下代码并进行编译:

[html]  view plain  copy
  1. import javax.servlet.ServletException;  
  2. import javax.servlet.http.HttpServlet;  
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5. import java.io.IOException;  
  6. import java.io.PrintWriter;  
  7. public class HelloWorld extends HttpServlet {  
  8.     private String message;  
  9.   
  10.     @Override  
  11.     public void init() throws ServletException {  
  12.         message = "Hello world, this message is from servlet!";  
  13.     }  
  14.   
  15.     @Override  
  16.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  
  17. //设置响应内容类型  
  18.         resp.setContentType("text/html");  
  19. //设置逻辑实现  
  20.         PrintWriter out = resp.getWriter();  
  21.         out.println("<h3>" + message + "h3>");  
  22.     }  
  23.     @Override  
  24.     public void destroy() {  
  25.         super.destroy();  
  26.     }  
  27. }  

点击Build中的Build Project,编译后会发现在classes目录下生成了HelloWorld.class文件

Intellijidea2017.03版创建一个简单的Servlet的demo_第16张图片

2. 部署servlet
方法一:

在WEB-INF目录下web.xml文件的标签中添加如下内容:

[html]  view plain  copy
  1. <servlet>  
  2.         <servlet-name>HelloWorldservlet-name>  
  3.         <servlet-class>HelloWorldservlet-class>  
  4.     servlet>  
  5.   
  6.     <servlet-mapping>  
  7.         <servlet-name>HelloWorldservlet-name>  
  8.         <url-pattern>/WebClient/HelloWorldurl-pattern>  
  9.     servlet-mapping>  

两个模块的要一致均为HelloWorld,而servlet-class则是该servlet的路径,即包名.类名。url-pattern 则是servlet在浏览器中的访问链接

方法二:
在HelloWorld文件的类前面加上:@WebServlet("/HelloWorld")(idea2017版亲测失效)

3. 运行servlet

打开浏览器输入:http://localhost:8080/WebClient/WebClient/HelloWorld即可查看servlet运行状态了.(注意有两个WebClient哦)


写这篇博客的目的是为了记录学习,请勿用于其他不当用途。



你可能感兴趣的:(java,web)