网站开发记科目,建设网站的英语怎么说,谈谈你对网络营销的认识,dchaser wordpress1.MVC#xff1a;(Model-View-Controller)操作流程 显示层View:主要负责接收Servlet传递的内容#xff0c;并调用JavaBean把内容显示给用户。 控制层Controller:负责所有的用户请求参数#xff0c;判断请求参数是否合法#xff0c;根据请求方式调用JavaBean进行处理#x…1.MVC(Model-View-Controller)操作流程 显示层View:主要负责接收Servlet传递的内容并调用JavaBean把内容显示给用户。 控制层Controller:负责所有的用户请求参数判断请求参数是否合法根据请求方式调用JavaBean进行处理把结果返给显示层进行显示。 模型层Model:完成一个独立的业务操作组件。一般以JavaBean或者EJB(分布式组件技术)来定义的。 最关键的是RequestDispatcher接口因为内容是通过该接口保存到JSP页面技能型显示的。 page、request、session、application 在MCV设计模式中所有的属性传递以request方式(因为保存范围越大占用的内存越多)进行传递可以提升代码的操作性能。 简洁、清晰的JSP页面应包含的内容 在JSP页面中唯一允许导入的包是java.util。 1.接收属性接收来至Servlet传递过来的属性。 2.判断语句判断传递到JSP中的属性是否存在。 3.输出语句使用迭代输出或者JavaBean输出。 2.过滤器Filter 实现过滤器功能实现javax.servlet.Filter接口 应用一编码过滤 在每个JSP页面或者Servlet中设置字符编码格式request.setCharacterEncoding(UTF-8);可使用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 EncodingFilter implements Filter {private String charSet;//字符编码
Overridepublic void destroy() {System.out.println(过滤器已销毁...);}Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException,ServletException {// 执行过滤System.out.println(执行过滤之前doFilter());req.setCharacterEncoding(this.charSet); //统一设置编码
chain.doFilter(req, resp);//请求继续传递System.out.println(执行过滤之后doFilter());}/*** 在容器启动的时候自动加载通过getInitParameter()获取配置的初始化参数只初始化一次。*/Overridepublic void init(FilterConfig config) throws ServletException {String initParam config.getInitParameter(encoding);//获取初始化参数this.sharSet initParam ;System.out.println(过滤器初始化初始化参数是 initParam);}
} web.xml中的配置 filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-paraminit-paramparam-nameforceEncoding/param-nameparam-valuetrue/param-value/init-param
/filter
filter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/*/url-pattern
/filter-mappingfilter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/jsp/*/url-pattern
/filter-mappingurl-pattern表示一个过滤器的过滤位置/*表示对于根目录下的一切操作都进行过滤;若只过滤某一个或者某个目录则必须明确写出对应的目录. 应用二登录验证 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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;public class LoginFilter implements Filter {Overridepublic void destroy() {}/*** session本身属于HTTP协议的范畴doFilter()定义的是ServletRequest* 要想获取session必须进行向下转型ServletRequest改成HttpServletRequest,才能使用getSession()获取session对象。*/Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException,ServletException {HttpServletRequest hsp (HttpServletRequest)req;//向下转型HttpSession ss hsp.getSession();if(ss.getAttribute(userId) ! null){ //判断用户是否登录chain.doFilter(req, resp);}else{req.getRequestDispatcher(login.jsp).forward(req, resp); //跳转到登录页面}}Overridepublic void init(FilterConfig arg0) throws ServletException {}
} 3.监听器Filter 应用1对application的监听 import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;//对上下文状态的监听public class ServletContextListenner implements ServletContextListener {Overridepublic void contextDestroyed(ServletContextEvent event) {//上下文销毁触发System.out.println(容器销毁 event.getServletContext().getContextPath());}Overridepublic void contextInitialized(ServletContextEvent event) {//上下文初始化触发System.out.println(容器初始化 event.getServletContext().getContextPath());}
} web.xml配置 listenerlistener-classcom.mxzer.common.listener.ServletContextListenner/listener-class
/listener 所有Servlet程序必须在web.xml进行配置配饰顺序如下 1.先配置过滤器filter、filter-mapping 2.再配置监听器listener 3.最后配置Servletservlet 、servlet-mapping 应用2对Servlet上下文属性的监听要实现ServletContextAttributeListener接口 应用3对session的监听 3.1实现HttpSessionListener接口 session销毁的方式 (1)调用HttpSession中的invalidate()方法 (2)在web.xml中配置session的超时时间 !-- session 失效时间 单位30分钟 --session-configsession-timeout30/session-timeout/session-config 3.2对session属性的监听要实现HttpSessionAttributeListener接口需要在web.xml配置 方式二使用HttpSessionBindingListener接口 /**
* 使用HttpSessionBindingListener
* session属性监听不需要在web.xml中配置
*
*/
public class ServletContextListenner implements HttpSessionBindingListener {private String loginName; //登录名public ServletContextListenner(String loginName) {this.loginName loginName;}public String getLoginName() {return loginName;}public void setLoginName(String loginName) {this.loginName loginName;}Overridepublic void valueBound(HttpSessionBindingEvent event) {System.out.println(在session中保存登录对象 this.getLoginName()session ID:event.getSession().getId());}Overridepublic void valueUnbound(HttpSessionBindingEvent event) {System.out.println(在session中移除登录对象 this.getLoginName()session ID:event.getSession().getId());}} 3.4对request监听 请求状态的监听实现ServletRequestListenner接口 System.out.println(request请求初始化 http:// event.getServletRequest().getRomoteAddr());System.out.println(request请求初始化 http:// event.getServletContext().getContextPath()); 属性的监听实现ServletRequestAttributeListener System.out.println(event.getNmae() event.getValue()); 转载于:https://www.cnblogs.com/mxzer/p/6437338.html