目录
学习目标
- WEB服务器tomcat
- servlet
WEB服务器
- Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动程序,只有浏览器发出请求的时候才会响应。应用层使用的是HTTP协议。
- 常用web服务器
- apache
- nginx
- iis
- tomcat
广义的servlet
- Servlet(Servlet Applet)是Java Servlet的简称,用Java编写的服务器端程序。用来接收和响应web客户端的请求,主要用于动态生成web页面内容。
- Servlet没有main方法,不能独立运行,因此必须把它部署到Servlet容器中,由容器来实例化并调用Servlet。
tomcat简介
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,使用java语言编写的,完全运行在jvm上,实现了Servlet规范和jsp规范。2.5/2.1-6.X
Tomcat的核心分为3个部分:
(1)Web容器—处理静态页面;
(2)catalina—一个servlet容器-----处理servlet
(3)还有就是JSP容器,它就是把jsp页面翻译成一般的servlet。
apache-tomcat目录结构
- bin:存放二进制文件,启动脚本等
- work:工作区。文件编译存放区
- lib:web应用所依赖的库
- logs:记录程序启动及运行时的日志
- temp:存放临时文件
- webapps:web应用默认存放的目录
- conf:配置文件目录
练习:servlet完成查询所有用户并显示
运行结果截图
工程截图
User.java代码
package com.one.pojo;
import lombok.Data;
@Data
public class User {
private int userId;
private String userName;
private String userPwd;
public User(int userId, String userName, String userPwd){
super();
this.userId = userId;
this.userName = userName;
this.userPwd = userPwd;
}
}
UserServlet.java代码
package com.one.servlet;
import com.one.pojo.User;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class UserServlet
*/
@WebServlet("/userServlet")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UserServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if("login".equals(action)){
login(request, response);
}else if("findAll".equals(action)){
findAll(request, response);
}
}
private void findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> list = new ArrayList<>();
list.add(new User(1,"zs","666"));
list.add(new User(2,"lisi","888"));
//将list放入request值域中
request.setAttribute("list", list);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 接受请求并响应
// 1.获取请求参数并封装为对象
String username = request.getParameter("username");
String userpwd = request.getParameter("userpwd");
// 2.数据验证 非空 正则表达式
// 3.登录业务处理,得到登陆业务结果
boolean b = false;
if("zs".equals(username)&&"666".equals(userpwd)){
b = true;
}
// 4.根据结果进行跳转
if(b){
//服务器内部转发,同一请求,地址栏不会变化
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
response.sendRedirect("login.jsp?msg=error");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
index.jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 欢迎你,<%=request.getParameter("username") %> -->
欢迎你,${param.username}
循环${requestScope.list}集合,取出每一个user
</body>
</html>
login.jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${param.msg}
<form action="userServlet" method="post">
<input name="username" /><br/>
<input name="action" value="findAll" type="hidden"/><br/>
<input name="userpwd" type="password"/><br/>
<input type="submit" value="登陆"/> <input type="reset" value="重置" /></td>
</form>
</body>
</html>