Servlet 注解开发 笔记记录
一、注解开发
1.@WebServlet(value = “/”)
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 基于注解开发
*/
@WebServlet("/")
public class ServletDemo1 extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("111");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(":login is running");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
2.手动创建Servlet容器
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* servlet基本功能类
*/
public class ServletDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(":ServletDemo02 is running");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import java.util.Set;
/**
* 注册配置servlet的功能类
*/
public class MyRegister implements ServletContainerInitializer {
@Override
public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {
//完成servlet的创建和配置
//1.创建ServletDeni02对象
ServletDemo2 servletDemo2=new ServletDemo2();
//2.在ServletContext对象中添加Servlet,并得到Servlet的动态配置对象
ServletRegistration.Dynamic registration = servletContext.addServlet("servletDemo2", servletDemo2);
//3.配置Servlet
registration.addMapping("/servletDemo2");//映射访问资源的路径
registration.setLoadOnStartup(1);//加载的时候创建
}
}
在src下建立
二、web交互
1.需求
通过页面请求将数据存到文件中
2.实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>保存学生信息</title>
</head>
<body>
<form action="/stu" method="get" autocomplete="off">
学生姓名:<input type="text" name="username"><br/>
学生年龄:<input type="number" name="age"><br/>
学生成绩:<input type="number" name="score"><br/>
<button type="submit">保存</button>
</form>
</body>
</html>
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/stu")
public class StudentServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取表单数据 存储到文件
String username = req.getParameter("username");
System.out.println("username:"+username);
String age = req.getParameter("age");
System.out.println("age:"+age);
String score = req.getParameter("score");
System.out.println("score:"+score);
//采用字符输出流
BufferedWriter bw=new BufferedWriter(new FileWriter("d:/stu.txt",true));
bw.write(username+","+age+","+score);
bw.close();
//响应客户端
PrintWriter pw = resp.getWriter();
pw.println("Save Successful!");
pw.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
设置默认页面为:
成功: