❶ 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過濾器