java---servlet学习笔记
1.public void init() throws ServletException {
// 初始化代码...
}
2.public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
}
service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}
3. public void destroy() {
// 终止化代码...
}
Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。
//请求解决乱码
response.setContentType("text/html;charset=utf-8");
//响应解决乱码
request.setCharacterEncoding("utf-8");
servlet怎么知道处理哪一个网页的信息:靠网页传递过来的参数名字判断是哪一个的请求,故同一个项目的不同参数名不要相同;看传递方法是post还是get,选择在dopost()或者doget()中重写此方法就好
新加一个servlet,须得重新部署一下才可正常运行
Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。
可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet。Servlet 过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。调用 Servlet 前调用所有附加的 Servlet 过滤器。
Servlet 过滤器是可用于 Servlet 编程的 Java 类,可以实现以下目的:
在客户端的请求访问后端资源之前,拦截这些请求。
在服务器的响应发送回客户端之前,处理这些响应。
根据规范建议的各种类型的过滤器:
身份验证过滤器(Authentication Filters)。
数据压缩过滤器(Data compression Filters)。
加密过滤器(Encryption Filters)。
触发资源访问事件过滤器。
图像转换过滤器(Image Conversion Filters)。
日志记录和审核过滤器(Logging and Auditing Filters)。
MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)。
标记化过滤器(Tokenizing Filters)。
XSL/T 过滤器(XSL/T Filters),转换 XML 内容。
过滤器通过 Web 部署描述符(web.xml)中的 XML 标签来声明,然后映射到您的应用程序的部署描述符中的 Servlet 名称或 URL 模式。
当 Web 容器启动 Web 应用程序时,它会为您在部署描述符中声明的每一个过滤器创建一个实例。
Filter的执行顺序与在web.xml配置文件中的配置顺序一致,一般把Filter配置在所有的Servlet之前。
Filter、FilterChain、FilterConfig 介绍https://www.runoob.com/w3cnote/filter-filterchain-filterconfig-intro.html
web.xml 中的 filter-mapping 元素的顺序决定了 Web 容器应用过滤器到 Servlet 的顺序。
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/a_test2";
数据库名,那数据源要干啥咧?
System.out.println() 是作为一个标记来使用的,用来测试一段特定的代码是否被执行。我们也可以打印出变量的值。
---2020/05/04