登陆请求 → struts2加载类(FilterDispatcher) → 读取配置文件中对应action
→ 派发请求 →调用action→启用拦截器 → 执行action调用的方法(如默认execute) → 通过业务类对象调用业务方法(spring中配置的bean在项目启动时已经加载) → 业务方法调用dao方法(获取数据),进行业务处理(一般声明事务会监控在业务层) → 返回处理结果到action → action返回响应 → FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面 → 页面展示结果
注1:struts2.1.6(具体版本记不清了,你可以查下)以后版本加载类替换成了(StrutsPrepareAndExecuteFilter)
注2:面试的时候,说道ssh的话,建议你去具体熟悉一种技术的基本机制 。
面试时你可以说熟练使用ssh框架(一般这时面试官会问你,对哪个比较熟悉) → 底层机制的话,对XXX比较熟悉(简单介绍一下你认知中的XXX)→ 这时候根据你的准备去说!~
有问题再追问,good luck!~
4.ssh eclipse 如何写配置文件1,有可能配置文件没有声明编码格式 。
即:hibernate.cfg.xml文件需要添加以下代码 。<hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.password"></property> <property name="connection.url"> jdbc:mysql://127.0.0.1/test </property> <property name="connection.characterEncoding">utf8</property> <property name="connection.useUnicode">true</property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="myeclipse.connection.profile">mysql</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <mapping…… /></session-factory></hibernate-configuration>2,有可能在页面跳转时就出现乱码,即写入数据库前就出现乱码 。
这样需要配置过滤器 。在web.xml文件中添加如下代码 。
<filter> <filter-name>CheckCodeServlet</filter-name> <filter-class> com.CheckCodeServlet </filter-class> </filter> <filter-mapping> <filter-name>CheckCodeServlet</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>; 然后在com包下创建CheckCodeServlet类 。代码如下 。
package com;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..mysql.jdbc.Driver
这样需要配置过滤器 。在web.xml文件中添加如下代码 。
package com;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.HttpServlet;import javax.servlet.http.HttpServletRequest;public class CheckCodeServlet extends HttpServlet implements Filter{ public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { // TODO Auto-generated method stub request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); filterChain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub }}这个是过滤器 。3,有可能是数据库编码格式与写入数据的编码格式不一致 。