严重: Servlet.service() for servlet [default] in context with path [/mobile_scm] threw exception java.

具体的报错如下:

严重: Servlet.service() for servlet [default] in context with path [/mobile_scm] threw exception
java.nio.file.InvalidPathException: Illegal char <:> at index 3: jar:file:\E:\Users\Administrator\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\mobile_scm\WEB-INF\lib\struts2-core-2.3.24.jar

相信大家在学习struts2时很多人碰到了这样的问题,我在本博客论坛上没有找到一个能解决我的问题的方案,大多数都是在打着标题划水,说什么核心jar包必须放在lib中来,然而是个初学者就知道按照教程来做放在lib中,对此无力吐槽,在此我特别强调一下我的问题,这是一个版本问题,重要的事情说三遍,版本问题,版本问题,版本问题。我之前用的是jdk10 ,tomcat8.5,然后struts2是2.3.24,这样的版本是不能够成功加载struts2的,当然我的struts2配置是没有问题的。

解决方案如下:

在struts2的官网中下在2.5.18版本的struts包,就能和以上所提及的工具版本适应。

我的建议是自己学习的话,jdk假如你用了老版本的问题话,你就用tomcat和struts2的老版本,再要么就都用最新版本的,避免出现这些浪费时间的问题。

 

 

在这里我来总结一下struts2的配置方法。

struts2是基于filter的,所以需要在web.xml中将struts2加载起来,这一步是核心,少了这个strut2是不可能成功被加载的。

     
        struts2
        org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
   
        
   
        struts2
        /*
   

  
 
    index.jsp
 

向我这样配置就没有问题了。

然后是加载自己所需配置的struts.xml文件

   

   
       
            /ok.jsp
            /no.jsp
       

   

action类

    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    public String execute() {
        System.out.println("你好");
        UserInfoService usRef = new UserInfoService();
        if(usRef.login(username,password)) {
            return "toOKJSP";
        }
        else {
            return "toNOJSP";
        }
    }

第二类

public class UserInfoService {

    public boolean login(String username, String password) {
        if(username.equals("a") && password.equals("aa")) {
            return true;
        }else {
            return false;
        }
        
    }

}

jsp界面

    


    username:

    password:

    
    

然受就是no.jsp和ok.jsp很简单的两个界面。

这就是一个比较简单的struts2的示例。

你可能感兴趣的:(严重: Servlet.service() for servlet [default] in context with path [/mobile_scm] threw exception java.)