Jfinal的登陆Action找不到的问题

默默积极 发布于 2014/06/07 11:07
阅读 795
收藏 0

水平有限,请指教一个简单的问题:

我登陆的action 如果第一次打开浏览器输入登陆请求路径 

http://192.168.1.9:8088/isWall/login.jsp  打开登陆页面,然后输入用户名和密码以后点击登陆会报404错误Action找不到

http://192.168.1.9:8088/isWall/authority/login;jsessionid=15m4hw6elt66zs9ey38dspt9m 不明白为什么会带一个jsessionid 

如果浏览器不关,刷新一下,或者再打开一个新窗口,就可以正常登陆

http://192.168.1.9:8088/isWall/authority/login 就不会有那个jsessionid了 求指教问题在哪?


另外还有一个问题 我如果http://192.168.1.9:8088/isWall直接这么请求,是不会默认打开login.jsp,不知道我哪里配置有问题,webxml配置如下:

 <filter-mapping>
  <filter-name>jfinal</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
    <welcome-file>login.html</welcome-file>
    <welcome-file>login.htm</welcome-file>
    <welcome-file>login.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
恳请能解答一下:谢谢!

加载中
1
红薯苗
红薯苗

你这里用了jsession重写,避免禁用cookie而无法使用

你可以按照如下方法:

JFinal将后面的/;jsessionid=1xcu84jbep3as178z89w6k25kcSubmit当成了urlPara了,所以找不到actoin,创建一个Handler试试下面的办法:

public class SessionHandler extends Handler {
  public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
    int index = target.indexOf(";jsessionid");
    if (index != -1) 
       target = target.substring(0, index);
    nextHandler.handle(target, request, response, isHandled);
  }
}



然后在 YourJFinalConfig.configHandle(Handles me) 中配置一下:

me.add(new SessionHandler());




魔神翼
魔神翼
回复 @默默积极 : 是浏览器干的
默默积极
默默积极
的确解决了,但是还可否告知下哪里重写了Jsessio方法,我只是添加了个全局的session拦截器
0
红薯苗
红薯苗

引用来自“红薯苗”的评论

你这里用了jsession重写,避免禁用cookie而无法使用

你可以按照如下方法:

JFinal将后面的/;jsessionid=1xcu84jbep3as178z89w6k25kcSubmit当成了urlPara了,所以找不到actoin,创建一个Handler试试下面的办法:

public class SessionHandler extends Handler {
  public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
    int index = target.indexOf(";jsessionid");
    if (index != -1) 
       target = target.substring(0, index);
    nextHandler.handle(target, request, response, isHandled);
  }
}



然后在 YourJFinalConfig.configHandle(Handles me) 中配置一下:

me.add(new SessionHandler());




请求的url后面带jsessionid不是你自己加上去的吗?如果不是,你检查一下你的<from action="这里的内容是什么,是否自动加上了jessionid"> ,还有你的web.xml里面过滤了/* 我觉得可能jfinal 的总过滤器把你的url iswall 当成了action处理了,所以找不到login.jsp文件,推荐所有的jsp,html文件都通过action访问。
返回顶部
顶部