1.初学 servlet
Servlet核心接口和类
创建servlet,除了实现Servlet接口之外,还可以继承 GenericServlet 或 HttpServlet。
HttpServlet类
继承HttpServlet类创建Servlet
package com.ws.servlet_;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HttpsServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("get请求");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("post请求");
}
}
Servlet配置方法
注解方式配置
package com.ws.Servlet2;
import com.ws.servlet_.HttpsServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(value = "/hello_http")//注解方式配置,value的值为请求的路径
public class BasicServlet extends HttpsServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("GET");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("POST");
}
}
requests对象
servlet中,get和post请求的数据都在HttpServletRequest对象中,两个核心接口是 ServletRequest、HttpServletRequ
方法
方法名 | 说明 |
---|---|
String getParameter(String name) | 根据表单组件名称获取提交的数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码 |
get和post请求
通过get和post请求来获取注册页面的数据。
get方式
package com.ws.Servlet2;
import com.ws.servlet_.HttpsServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(value = "/register")
public class RegisterServlet extends HttpsServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取用户请求发送的数据
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("提交的数据"+username+"\t"+password);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="/servlet_war_exploded/register" method="get">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="注册">
</form>
</body>
</html>
post方式
package com.ws.Servlet2;
import com.ws.servlet_.HttpsServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(value = "/register")
public class RegisterServlet extends HttpsServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//对request请求对象设置统一的编码,中文服务器端接收会乱码
req.setCharacterEncoding("utf-8");
//获取用户请求发送的数据
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("提交的数据"+username+"\t"+password);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="/servlet_war_exploded/register" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="注册">
</form>
</body>
</html>
response对象
response对象用于响应客户端请求病向客户端输出信息。
response主要方法
方法名称 | 作用 |
---|---|
setHeader(name,value) | 设置响应信息头 |
setContentType(String) | 设置响应文件类型、响应式的编码格式 |
setCharacterEncoding(String) | 设置服务端响应内容编码格式 |
getWriter() | 获取字符输出流 |
package com.ws.Servlet2;
import com.ws.servlet_.HttpsServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(value = "/register")
public class RegisterServlet extends HttpsServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//对request请求对象设置统一的编码
req.setCharacterEncoding("utf-8");
//获取用户请求发送的数据
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("提交的数据"+username+"\t"+password);
// //设置服务器端响应的编码格式
// resp.setCharacterEncoding("utf-8");
// //设置客户端响应内容的头内容的文件类型及编码格式
// resp.setHeader("Content-type","text/html;charset=UTF-8");
//同时设置服务器端的响应格式和客户端的头内容编码
resp.setContentType("text/html;charset=UTF-8");
//响应数据给客户端
PrintWriter writer = resp.getWriter();
writer.println("登录成功!");
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="/servlet_war_exploded/register" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="注册">
</form>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理