(✪▽✪)曼波~~~~!欢迎来到Servlet新手村!准备好开启Web开发的奇妙冒险了吗?让曼波用最有趣的方式带你飞~
// 本质就是一个Java类!
public class HelloServlet extends HttpServlet {
// 专门处理HTTP请求的小管家
}
@WebServlet("/hello") // 魔法注解!
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
resp.getWriter().print("❤️ 曼波教你学Servlet!");
}
}
hello
com.mambo.HelloServlet
hello
/hello
init()
→ 容器启动时调用一次service()
→ 每次请求都调用destroy()
→ 容器关闭时调用
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name"); // 获取URL参数
// 处理逻辑...
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("username");
String password = request.getParameter("password");
// 处理登录逻辑...
}
// 获取各种信息
String clientIP = request.getRemoteAddr(); // 客户端IP
String header = request.getHeader("User-Agent"); // 浏览器信息
Cookie[] cookies = request.getCookies(); // 获取cookie
// 存取数据
request.setAttribute("data", myData); // 存数据
Object data = request.getAttribute("data"); // 取数据
// 设置响应
response.setContentType("text/html;charset=UTF-8"); // 内容类型
response.setStatus(404); // 设置状态码
response.sendRedirect("newPage.html"); // 重定向
// 写响应体
PrintWriter out = response.getWriter();
out.println("Hello World!
");
String username = request.getParameter("username");
String password = request.getParameter("password");
if("admin".equals(username) && "123456".equals(password)){
request.getSession().setAttribute("user", username); // 存session
response.sendRedirect("welcome.jsp");
}else{
response.sendError(401, "登录失败!");
}
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\"mambo.txt\"");
try(InputStream in = new FileInputStream("/path/to/file");
OutputStream out = response.getOutputStream()) {
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
out.write(buffer, 0, length);
}
}
// 解决方案:统一设置编码
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
// 使用Cookie
Cookie cookie = new Cookie("user", "mambo");
cookie.setMaxAge(3600); // 1小时有效期
response.addCookie(cookie);
// 使用Session
HttpSession session = request.getSession();
session.setAttribute("cart", shoppingCart);
⚠️ 注意:Servlet是单例多线程的!
曼波小贴士:推荐使用Tomcat 9+作为练习服务器,用IDEA社区版就能轻松创建Web项目啦!(≧∇≦)ノ
试着写一个记录访问次数的Servlet吧~ 遇到问题随时召唤曼波哦!(✪ω✪) 记得Servlet就像Web开发的乐高积木,组合起来能创造无限可能!✨