❶ SSH加入sitemesh后提示找不到struts2-sitemesh的插件的过滤器
仔细检查jar包
❷ java web 验证用户是否已登录,不用ssh过滤器能实现么
首先纠正一下,拦截抄器是struts特有的,但过滤器不是stuts特有的,你不用struts也可以使用过滤器来实现登陆验证,当然你也可以使用spring的aop编程来实现,额当然还有一些比较偏门的方法比如:
你也一段公用的jsp页面,其他的每个页面都引用它,在他里面写<%%> 这种形式的java代码来验证保存用户信息的session是否存在,不存在你让他跳转到登陆页 这种方法也能实现
❸ ssh过滤器里如何获取getParameter
直接用就好啊
❹ ssh使用tiles框架,怎么使用struts2自定义的过滤器,例如过滤未登陆的用户希望有个具体的例子!!
struts2可以通过配置interceptor来实现过滤未登录用户,在struts.xml文件中进行配置即可。
<package name="efe-default" extends="struts-default">
<interceptors>
<!-- 校验用户是否登录用拦截器 -->
<interceptor name="checkLoginInterceptort" class="com.cn.inteceptor.CheckLoginInterceptor"/>
<!-- 定义拦截器栈 -->
<interceptor-stack name="MyDefaultStack">
<interceptor-ref name="checkLoginInterceptort">
<param name="actionNames">testLogin</param>
<param name="loginPath">outSys</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="MyDefaultStack"></default-interceptor-ref>
</package>
public class CheckLoginInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1652269041938963442L;
@SuppressWarnings("unchecked")
public String intercept(ActionInvocation ai) throws Exception {
Object action = ai.getAction();
//获取当前操作系统文件路径分隔符
String separator = System.getProperty("file.separator");
HttpServletRequest request = ServletActionContext.getRequest();
String requestUrl = request.getRequestURI();
int tempInt = CommonTools.getSitesInString(requestUrl, "/").get(1);
requestUrl = requestUrl.substring(tempInt);
Map session = ai.getInvocationContext().getSession();
String login = (String) session.get("USERID");
if(!CommonTools.isNullString(login) || !CommonTools.isNullString(examLogin) || singup != null
|| student != null || agency != null){
return ai.invoke();
}else{
//获得服务器绝对路径
String rootUrl = ServletActionContext.getServletContext().getRealPath("/");
//读取src\myXML文件夹下的Permissions.xml文件
DataDictionaryXmlParseUtil myPermissions = DataDictionaryXmlParseUtil.getInstance(rootUrl+"WEB-INF"+separator+"classes"+separator+"myXML"+separator+CommonConstants.PERMISSION_XML);
//得到允许不通过拦截器的url地址列表
List<String> permissionList = myPermissions.getDataMap().get(CommonConstants.REQUEST_RUL_KEY);
//比较是否有列表中的数据
for (String permissUrl:permissionList){
if (requestUrl!=null && requestUrl.equalsIgnoreCase(permissUrl)){
return ai.invoke();
}
}
return "no.access";
}
}
❺ java ssh可以用过滤器吗
可以啊,这个,你用的struts几啊?是struts2本事就是运用过滤器
❻ 在ssh框架中,为什么在applicationContext.xml文件中注入不进去
是固定名称,因为使用的框架要加载这些xml文件。applicationContext.xml用于spring的注入,struts.xml用于form提交,action定义。web.xml是最基本的,可能含有数据库连接,过滤器,监听器等信息的配置
❼ ssh2框架中, 为什么我们要在web.xml中配置struts的过滤器要详细一点,回答的好,加分
struts2的过滤器的目的是过滤符合要求的请求,如我们配置以action结尾的请求,全部使用专struts2的请求
你有没有疑惑属过,为什么struts2的标签了、领域模型、数据绑定等这些内容如何实现的?为什么我们以前写普通web程序的时候,需要在servlet里面接受参数,使用了struts2就不用手动的接受了?
这些都是struts2的过滤器的功能,过滤器接受到这些请求,并自动的根据我们在struts-config.xml里面的配置信息将这些参数进行处理,过滤器对常用的操作进行了封装,减少了我们的工作量
❽ 在使用ssh框架中,出现了 中文乱码问题 ,怎么解决
解决乱码几小点:
1.配置过滤器,可以选择自己写,既然你用的SSH框架就更简单了,直接用Spring的过滤器,web.xml里配置一下即可。
2.Jsp页面设置编码,所有地方都要相同,我习惯用GBK
<%@ page contentType="text/html;charset=GBK" %>
也可以使用HTML的页面编码配置
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
3.配置Tomcat(我们用,别的服务器另找)编码
在server.xml中配置,如:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />
4.如果还出现乱码,只能用这招了,我很少用
new String(s.getBytes("ISO-8859-1"),"GBK")
一般用Form提交前两种方式就不会出现乱码,用get请求,在url后追加中文参数前两种不管用,需配置Tomcat或者第四种,重新编码
❾ IDEA整合SSH时,在web.xml中配置Struts2核心过滤器<filter-name>struts</filter-name>下面的映射也是飘红
不要浪费时间学习struts了。基本已经费了。花时间学习 springmvc+mybatis+springjpa吧。
工作中基本都是springboot了。
❿ 自从用了ssh三大框架之后,就没出现过编码问题,为什么
web.xml里面已经配置了spring的关于编码问题的charEncoder过滤器