Java web从入门到放弃(3)
来源:互联网 发布:js显示当前时间年月日 编辑:程序博客网 时间:2024/05/21 10:30
第八章、Servlet技术
建立新的servlet和过滤器都需要在web.xml文件中添加配置信息
添加一个servlet的时候需要加入servlet
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.song.servlet.MyServlet</servlet-class></servlet>和servletmap。注意此处的servlet-name需要和上文代码中的servlet-name相同
<servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/servlet/MyServlet</url-pattern></servlet-mapping>
第九章、过滤器和监听器
1、过滤器
遇到写<filter-name>报错
参考 http://blog.csdn.net/niu_hao/article/details/25250213
例一、统计网站的访问数量
首先建立一个监听器负责记录数字count并且将count放到ServerletContext中
package com.song.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class Filter2 implements Filter {private int count; public Filter2() {}public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {count++;//将ServletRequest转化成HttpServletRequestHttpServletRequest req = (HttpServletRequest)request;//获取ServletContextServletContext context = req.getSession().getServletContext();//将来访数量值放入ServletContext中context.setAttribute("count", count);//向下传递过滤器chain.doFilter(request, response);}public void init(FilterConfig fConfig) throws ServletException {String param = fConfig.getInitParameter("count"); // 获取初始化参数count = Integer.valueOf(param);//将获取的参数转化为int型,然后赋值给私有变量count}}
然后在index.jsp中获取Context中的属性
<%@ 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>index</title></head><body><%=application.getAttribute("count") %></body></html>这样就可以在每次刷新的时候增加访问量
例二、字符编码过滤器
首先编写CharactorFilter过滤器
package com.song.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class CharactorFilter implements Filter {String encoding = null;public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {if(encoding != null){request.setCharacterEncoding(encoding);response.setContentType("text/html;charset="+encoding);}chain.doFilter(request, response);}public void init(FilterConfig fConfig) throws ServletException {encoding = fConfig.getInitParameter("encoding");}}
注意:配置这个过滤器的时候需要将web.xml文件中的配置信息修改为
<filter> <display-name>CharactorFilter</display-name> <filter-name>CharactorFilter</filter-name> <filter-class>com.song.filter.CharactorFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharactorFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后是AddServlet
package com.song.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AddServlet extends HttpServlet {private static final long serialVersionUID = 1L; public AddServlet() { super(); }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();String id = request.getParameter("id");String name = request.getParameter("name");String author = request.getParameter("author");String price = request.getParameter("price");out.print("<h2>图书信息添加成功</2>");out.print("图书编号:"+id+"<br>");out.print("图书名称:"+name+"<br>");out.print("作者:"+author+"<br>");out.print("价格:"+price+"<br>");out.flush();out.close();}}
最后是负责输入数据的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>index</title></head><body><form action="AddServlet" method="post"><table align="center" border="1" width="350"><tr><td class="2" align="center" colspan="2"><h2>添加图书信息</h2></td></tr><tr><td align="right">图书编号:</td><td><input type="text" name="id"></td></tr><tr><td align="right">图书名称:</td><td><input type="text" name="name"></td></tr><tr><td align="right">作者:</td><td><input type="text" name="author"></td></tr><tr><td align="right">价格:</td><td><input type="text" name="price"></td></tr><tr><td colspan="2" class="2" align="center"><input type="submit"value="提交"></td></tr></table></form></body></html>
阅读全文
0 0
- Java web从入门到放弃(3)
- Java web从入门到放弃(1)
- Java web从入门到放弃(2)
- Java web从入门到放弃(4)
- Java web从入门到放弃(5)
- JAVA 从入门到放弃?
- java从入门到放弃
- Web前端从入门到放弃( 固定顶部菜单)
- web开发从入门到放弃
- Java从入门到高手到放弃
- 10分钟JAVA从入门到放弃
- java--从入门到放弃之一
- 从入门到放弃C语言-瞎倒腾(3)
- Android从入门到放弃3-线程
- Docker 从入门到放弃(一)
- 策略模式(从放弃到入门)
- 观察者模式(从放弃到入门)
- JSP--(二)从入门到放弃
- Tensorflow实现Softmax Regression识别手写数字
- (4)qt5制作简易计算器详细步骤(ui界面)
- Igor and his way to work-Codeforce 793B BFS
- 移动Web开发基础-利用VW单位适配布局
- mysql 添加字段、删除字段、调整字段顺序
- Java web从入门到放弃(3)
- 编译进阶(二)精彩的C4
- 第14周—Java集合框架(第2题)
- Python学习日记 第六天
- 软键盘的显示和隐藏的正确姿势
- BZOJ5105: [CodePlus2017]晨跑
- 经典算法之二路归并排序
- [bzoj2588][主席树]Count on a tree
- 在存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的