使用idea已经有段时间了,但是一直没有自己亲自新建一个项目,从头开始写一个Servlet,今天就来学习一下,并且记一个笔记。
一。
1.首先,打开idea new-->Project
2.选择Maven 项目 点击下一步
3.填写groupid 和 Artifactid 如下:
4.点击下一步 选择一个路径,这个路径是存放你项目的路径
5.完了之后,用一个新窗口打开:
目录结构如下:
6.然后将mav项目,转成web项目
右键项目Add Framework Support
7.添加Web Application 支持
8.点击ok 后,项目就变为了web项目,看如下目录:
9.然后基本的项目已经起来了,然后就是写代码了,
二。
1.在src-->main-->java 下新建一个包 com.demo.servlet 然后在此包下新建一个 HttpServlet 类
2.然后在此类下书写代码,首先HttpServlet 类要继承HttpServlet ,但是我在写这个继承的时候没有给我提示,如下所示:
只要是因为这个工程还没有添加 对servlet的支持,下面在pom文件中添加对 servlet的支持
<dependencies>
<!--引入servlet-->
<dependency>
<groupId>Javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
</dependency>
</dependencies>
pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>hellodemo02</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--引入servlet-->
<dependency>
<groupId>Javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
</dependency>
</dependencies>
</project>
3.此时再继承HttpServlet 就有这个提示了:
4.继承HttpServlet之后,需要重写doGet方法,在idea中 使用快捷键 Ctrl+O 选择重写的方法
写完之后下面是HelloServlet的代码
package com.demo.servlet;
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 HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
try {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
response.setCharacterEncoding("UTF-8");
String userId = request.getParameter("userId");
String pwd = request.getParameter("pwd");
if("admin".equals(userId) && "password".equals(pwd)){
out.println("success");
}else{
out.println("fail");
}
out.println("<br/>");
String servletPath = this.getServletContext().getRealPath("/");
out.println(servletPath);
out.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
5.写完HelloServlet之后还不行,我们还没有在web.xml中进行配置
下面是web.xml中的内容
<?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_4_0.xsd"
version="4.0">
<display-name>hellodemo</display-name>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.demo.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
6.再然后就是在idea中配置tomcat了 如何配置我这里就不写了 我也会大家都会,我就把截图放一下吧:
之后启动timcat 访问:
http://localhost:8080/demo02/hello
页面如下:
砍我HelloServlet 中 的写法 我这么访问:
http://localhost:8080/demo02/hello?userId=admin&pwd=password
返回的页面就是success
至此,使用idea 新建一个Maven项目,并且书写第一个Servlet 完成,接下来,研究一下HttpServlet
不积跬步,无以至千里
不积小流,无以成江海