1.用IDEA新建Java WEB项目并配置Tomcat
这一部分可以参考之前的一篇随笔
https://www.cnblogs.com/lbhym/p/11496610.html
2.导入Servlet的jar包和新建classes文件夹
在File--->Project Structure----->Modules------>Dependencies
点击+号,选择JARs....。然后选择servlet的jar包所在位置,一般在tomcat路劲下的lib文件夹里。
导入之后再在WEB-INF文件夹下新建一个名叫classes的文件夹,这是servlet类编译后文件生成的地方,但是IDEA默认下没有这个文件夹的,所以需要手动设置一下输出的路径。
在File--->Project Structure----->Modules------>Paths
选择Use module.....,然后在Output path 和Test output path路径里面选择classes文件夹。
3.编写Servlet类并建立与JSP页面的对应关系
大家都知道Servlet只是一个Java类。以我的理解JSP就类似.NET里面的Razor,可以在前端里面写Java或C#。Servlet就像控制器类一样,接收前端传过来的数据,然后进行处理。
在src下新建一个类。叫LoginServlet。
如下,暂时没用到数据库,只是在本地做个简单的判断,并返回信息。
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String password = request.getParameter("password"); String html = null; if ("admin".equals(name) && "123".equals(password)) html = "success"; else html = "fail"; PrintWriter pw = response.getWriter(); pw.println(html); } }
在index.jsp文件里面,写几个登录控件。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$title> head> <body> <form action="login" method="post"> 账号: <input type="text" name="name"> <br> 密码: <input type="password" name="password"> <br> <input type="submit" value="登录"> form> body> html>
到这里,页面和类是毫无关联的,需要在web.xml里面对应关系
xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>LoginServletservlet-name>
<servlet-class>LoginServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>LoginServletservlet-name>
<url-pattern>/loginurl-pattern>
servlet-mapping>
web-app>
如果有其他页面和其他类,需要再写一对
整个过程大概是:前端访问action,然后在web.xml会根据同名的url-pattern去访问对应的servlet类,servlet类里面做完相应的处理后,再返回内容到页面上。
4.运行项目
如果输入admin和123会返回绿色的成功,否则就是红色的失败。