创建项目,使用Struts和Hibernate等框架出现的异常,以及步步地处理的过程

34 篇文章 0 订阅
5 篇文章 0 订阅

[使用MyEclipse,JDK1.7]

我招谁惹谁了????创建过那么多次项目,都没有报错过,怎么刚完成个"销售管理系统",我回来做简单的上机练习,就出了这么多之前未预见过的?!?!?!?(学识浅薄,见识短呐)

好吧,"没有解决不了的问题,只有问题不会解决"!!!!!

严重: Servlet.service() for servlet jsp threw exception
The Struts dispatcher cannot be found.  This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]
	at org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:60)
	at org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44)
	at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48)
	at org.apache.jsp.login_jsp._jspx_meth_s_005fform_005f0(login_jsp.java:133)
	at org.apache.jsp.login_jsp._jspService(login_jsp.java:102)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)

新建个Web Project,在lib文件夹下加入Struts2的struts2-core-2.2.1.jar和其他的jar包,然后接着写了login.jsp,使用Struts2标签库,

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"  %>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>用户登录</title>
    <script type="text/javascript">
    	function check(){
    	//需要引入JS
			var uN=$("#userName").val();
			var pW=$("#pwd").val();
			if(uN==""||pW==""){
				alert("请输入账户名或密码!!!");
				return false;
			}
			return true;
    	}
    </script>
  </head>
  
  <body>
  
    <s:form action="" method="post" onsubmit="return check();">
    	<s:textfield name="user.userName" id="userName" placeholder=" 输入账号" label="登录账户"/>
    	<s:password name="user.password" id="pwd" placeholder=" 输入密码"  label="登录密码"/>
    	<s:submit   value="Submit"></s:submit>
    </s:form>
  </body>
</html>

然后发布Tomcat6,接着运行,就会报了上面的异常,(我没有写struts.xml,没加Hibernate.cfg.xml等),看来"心急吃不了热豆腐"!!!!

改:加入配置文件struts.xml和配置web.xml,在其中新增struts2的过滤器,若只加入struts.xml ,则

所以还要在web.xml中加上这些代码(该文章里有类似内容Struts 2入门【struts.xml的DTD验证不起作用的解决办法】)

<filter>  		
 <filter-name>struts</filter-name>  		
 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 <!-- Strutsjar包里面的一个类,相当于中央控制器-->  
 </filter>  
 <filter-mapping>  		
 <filter-name>struts</filter-name>  		
 <url-pattern>/*</url-pattern>
 <!-- 过滤所有请求,实际开发中一般过滤.action请求 -->  
 </filter-mapping>

原文:https://blog.csdn.net/Hw2930277377/article/details/83002395 
版权声明:本文为博主原创文章,转载请附上博文链接!

接着,,,还是错???!!!!!那就是你的过滤器配置错误,你要自己去对比下

 反正到这里,使用Struts2标签库的login.jsp一定能显示出来的!!!

接着我加入Hibernate框架,有生成hibernate.cfg.xml和HibernateSessionFactory.java,接着基本的我都加上对应代码了,然后运行,还报错,MMP,T_T,,,,,,,能不能 让我安安静静做个美少女?哼?(当然我也去百度过,InvocationTargetException为反射异常:InvocationTargetException异常分析微妙的一个异常信息java.lang.reflect.InvocationTargetException启动Tomcat出现“Bad version number in .class file (unable to load class XXX)”解决java.lang.reflect.InvocationTargetException这种错怎么解决Java异常处理之InvocationTargetException(反射异常)

根据解释清晰程度,排的序,可以点开看看,若有帮助,再好不过,我同学也遇到这个问题,文章里有说过“可能少了jar包”,他解决后,还真少了这几个jar包

我没有jdom包也没报错,但是Hibernate3.1核心包,是配置Hibernate框架时自动加的,若没有加到,可以在这里加

自己选择对应的Hibernate_core包】

)

十一月 28, 2018 2:10:34 下午 com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn
警告: an exception occured while executing the prefix method
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.invokePrefixMethod(PrefixMethodInvocationUtil.java:121)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:236)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:261)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/Session
	at qiu.comm.BaseDAO2.queryUsersByHQL(BaseDAO2.java:45)
	at qiu.action.UsersAction.validateList(UsersAction.java:35)
	... 61 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.Session
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	... 63 more

我的后台代码片段: 

——UsersAction.java
private BaseDAO2 base=new BaseDAO();
private List<UsersVo> uList;
private UsersVo user;
public void validateList() {
		
		try{	
			uList=base.queryUsersByHQL(user.getUserName(),user.getPassword());
			if(uList.size()<=0){
				addFieldError("user.userName", "请注册账号!!!!");
			}
		}catch(Exception e1){
			e1.printStackTrace();
		}
}
public String list(){
		uList=base.queryByHQL("UsersVo");
		return INPUT;
}
——BaseDAO.java
public List queryUsersByHQL(String userName,String pwd){
		Session session =HibernateSessionFactory.getSession();
		//清空缓存
		session.clear();
		Transaction tx = session.beginTransaction();
		List list=null;
		Query query=null;
		try{
		    query = session.createQuery("from UsersVo s where s.userName=:userName and s.password=:password");
		    query.setString("userName", userName);
		    query.setString("password", pwd);

			list = query.list();
			tx.commit();
			session.close();
		}catch(Exception e){
			tx.rollback();
			e.printStackTrace();
		}
		return list;
	}	
}

JSP:      

Struts.xml:

Hibernate.cfg.xml:

        <property name="connection.username">sa</property>
        <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=ExamTestQ</property>
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="connection.password">123456</property>
        <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        
        <property name="show_sql">true</property>
        <property name="format_sql">false</property>
        
    	<mapping resource="qiu/bean/DepsVo.hbm.xml"/>
    	<mapping resource="qiu/bean/UsersVo.hbm.xml"/>

我就对一对报异常的包文件,看存在不,存在呀!!好呀,接着我在HibernateSessionFactory里设断点,出现下面这个问题,相对更容易解决哎!Oh,Boy!(之前,还是用SQLServer数据库的时候,怎么,怎么没发生过,,,,,,哎呀勒~)

org.hibernate.exception.JDBCConnectionException: Cannot open connection
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
	at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:129)
	at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1290)
	at qiu.comm.BaseDAO2.queryUsersByHQL(BaseDAO2.java:49)
	at qiu.action.UsersAction.validateList(UsersAction.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.invokePrefixMethod(PrefixMethodInvocationUtil.java:121)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:236)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:261)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1033)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
	at java.sql.DriverManager.getConnection(DriverManager.java:571)
	at java.sql.DriverManager.getConnection(DriverManager.java:187)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
	... 67 more
十一月 28, 2018 2:23:20 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
	at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
	at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:753)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:506)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)

这明显地连接不了数据库,先确定"是否启动对应数据库的服务",我的早已启动了!!!

那接着看:是否"TCP/IP已禁用",在Window或Window旁的小娜搜索--->找"SQLServer配置管理器"(我下载的是2014版的),

我的打开后,"MMC无法创建管理单元"

我百度"mmc无法创建管理单元怎么办",说有防火墙阻挡,我立马全关(全关闭,有时候360安全中心会帮你开的),反正我没成功(因为要启动cmd,查找一个文件,在之前我根据路径找那文件,不存在呀,何况cmd查找并启动呢,但是还是试了cmd查找并启动,照样失败),不过这个不知道有没有效,你们要是不想卸载,就试试这个好了!

所以我粗暴地"卸载",再安装回来,能够打开"SQLServer配置管理器",(还会报TCP/IP连接异常问题时)启用TCP/IP协议,最好打开,全部看一遍,确保"全部启用(矩形红框的都是要注意的,IP地址都要确保全部已启用!!!)",

当然最好还要:

将它们的"启动模式"改"手动",不会一开机就加重电脑负担等等,若要连接数据库,手动启动"框内这三个"就可以了,

回归话题,解决了该问题,原来的InvocationTargetException异常,改

说真的,我很无奈!!!我的其他项目,也是这么写,怎么没报错,,,,这????!!!

然后翻翻原来的代码:

 接着,                                 

我写完"用户登录",继续写"用户注册",要联系"DepsVo",使用下拉框形式显示Deps的值,所以点击"注册",先经过"UsersAction的init()"再转向userAdd.jsp,接着又报异常 :

%%%% Error Creating SessionFactory %%%%
org.hibernate.MappingException: Could not read mappings from resource: /qiu/bean/DepsVo.hbm.xml
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:485)
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
	at qiu.bean.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:67)
	at qiu.bean.HibernateSessionFactory.getSession(HibernateSessionFactory.java:52)
	at qiu.comm.BaseDAO2.queryByHQL(BaseDAO2.java:25)
	at qiu.action.UsersAction.init(UsersAction.java:36)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.hibernate.MappingException: Could not parse mapping document in input stream
	at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:431)
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)
	... 74 more
Caused by: org.dom4j.DocumentException: Connection reset Nested exception: Connection reset
	at org.dom4j.io.SAXReader.read(SAXReader.java:484)
	at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:422)
	... 75 more

 此时重启Tomcat,后台没报错(其实我是先add"上面讲到的jdom"包,再重启Tomcat,成功并未报错,此时remove这个jdom.jar,后台也没有报错呀!!!所以我想,应该是Tomcat没有及时更新缓存)

再接着,写完”注册”代码,就从“登录”开始,在“登录界面”,用户名和密码“填写数据库里不存在的值”,就是想成功后接着点击“注册”,到“注册界面”,但是此时遇到这异常(下面紧跟有我的对应代码)

十一月 29, 2018 2:13:18 下午 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
tag 'select', field 'list', name 'user.depId': The requested list key '#request.dList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
	at org.apache.struts2.components.Component.fieldError(Component.java:237)
	at org.apache.struts2.components.Component.findValue(Component.java:358)
	at org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:80)
	at org.apache.struts2.components.Select.evaluateExtraParams(Select.java:105)
	at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:856)
	at org.apache.struts2.components.UIBean.end(UIBean.java:510)
	at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
	at org.apache.jsp.userAdd_jsp._jspx_meth_s_005fselect_005f0(userAdd_jsp.java:333)
	at org.apache.jsp.userAdd_jsp._jspx_meth_s_005fform_005f0(userAdd_jsp.java:186)
	at org.apache.jsp.userAdd_jsp._jspService(userAdd_jsp.java:129)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:159)
	at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)
——UsersAction
    //赋值于下拉框
    public String init(){
		dList=base.queryByHQL("DepsVo");
		return INPUT;
    }

    HttpServletRequest request=ServletActionContext.getRequest();
	HttpSession session =request.getSession();

    //因为校验的错误状态ActionError会在session范围内保存,
    //导致每次的Action请求会直接!!!!!跳转到input视图!!!!
    //即 : 只要遇到了addFieldError,自动return input,不管你在addFieldError下一行写了什么
	public void validateList() {
		HttpServletResponse response=ServletActionContext.getResponse();
		if(user!=null){
			session.setAttribute("user", user);
		}
		user = (UsersVo)session.getAttribute("user");
		try{	
            //若无session则重定向到login页面
			if(user==null){
				response.sendRedirect("login.jsp");
			}
			uList=base.queryUsersByHQL(user.getUserName());
			if(uList.size()==0){
				addFieldError("user.userName", "请注册账号!!!!");
			}else{
                //用户的密码有误的验证
			    if(!uList.get(0).getPassword().equals(user.getPassword())){
				    addFieldError("user.userName", "密码有误,请重新输入!!!!!!!!!");
			    }
		    }
		}catch(Exception e1){
			e1.printStackTrace();
		}
	}
	public String list(){
		int did=uList.get(0).getDepId();
		try{			
            //利用离线查询DetachedCriteria
			DetachedCriteria dc=DetachedCriteria.forClass(UsersVo.class);
            //根据部门Id查询,这样就实现了,用户只看得到同部门的同事了
			dc.add(Restrictions.eq("depId", did));
			dc.setProjection(null);
			uList=base.queryByDetach(dc);
		}catch(Exception e){
			e.printStackTrace();
		}
		return "list";
	}
//注册时验证是否"用户名已存在"
public void validateAddUser(){
		DetachedCriteria dc=DetachedCriteria.forClass(Users_TestVo.class);
		dc.add(Restrictions.eq("userName", user.getUserName()));
		uList=base.findAllByDetach(dc);
		try {
		    if(uList.size()>0){
			 request.setAttribute("msg","用户名已存在,请重新输入用户号!!!!!!!!!!");
			 request.getRequestDispatcher("/login.jsp").forward(request, response);
		    }
		} catch (Exception e) {
			e.printStackTrace();
		}
}
public String addUser(){
		base.save(user);
		return INPUT;
}

——BaseDAO
//保存操作
public void save(Object obj){
		Session session = HibernateSessionFactory.getSession();
		session.clear();
		Transaction tr=session.beginTransaction();
		try{
			session.save(obj);
			tr.commit();
		}catch(Exception e){
			tr.rollback();
			e.printStackTrace();
		}
}
//查询某表的全部信息
public List queryByHQL(String className){
		Session session = HibernateSessionFactory.getSession();
		//清空缓存
		session.clear();
		Transaction tx = session.beginTransaction();
		List list=null;
		try{
			String sql = " from "+className;
			Query query = session.createQuery(sql);
			list = query.list();
			tx.commit();
			session.close();
		}catch(Exception e){
			tx.rollback();
			e.printStackTrace();
		}
		return list;
}
//使用QBC的离线查询,实现统一的列表查询函数
public List queryByDetach(DetachedCriteria dc){
		Session session=HibernateSessionFactory.getSession();
		session.clear();
		Transaction tr=session.beginTransaction();
		List list=null;
		try{
			Criteria cr=dc.getExecutableCriteria(session);
			list=cr.list();
			tr.commit();
		}catch(Exception e){
			tr.rollback();
			e.printStackTrace();
		}
		return list;
}
//带条件查询UsersVo表
public List queryUsersByHQL(String userName){
		Session session =HibernateSessionFactory.getSession();
		//清空缓存
		session.clear();
		Transaction tx = session.beginTransaction();
		List list=null;
		Query query=null;
		try{
			query = session.createQuery("from UsersVo s where s.userName=:userName");
			query.setString("userName", userName);
			list = query.list();
			tx.commit();
			session.close();
		}catch(Exception e){
			tx.rollback();
			e.printStackTrace();
		}
		return list;
}

————我的add.JSP代码:
<%@taglib prefix="s" uri="/struts-tags" %>
<script type="text/javascript">
    	function check(){
    		// 不能var pw=$("#pwd").val();要有某某js文件
    		var pw=document.getElementById("pwd").value;
    		var pw2=document.getElementById("pwd2").value;
    		var userName=document.getElementById("userName").value;
    		var job=document.getElementById("job").value;  		
			if(userName===null){
				alert("请确认登录名称!!!");
				document.getElementById("userName").focus();
				return false;
			}
			if(job===null){
				alert("请确认职位名称!!!");
				document.getElementById("job").focus();
				return false;
			}
			if(pw!=pw2){
				alert("请确认密码!!!确认密码与登录密码必须一致");
				document.getElementById("pwd").focus();
				return false;
			}
			return true;
    	}
    </script>
  </head>
  <body>
  	<s:form action="uAction!addUser.action" method="post" onsubmit="return check();">
        <s:div align="center">
   			<FONT style="color:red;">${msg}</FONT>
   		</s:div>	    
        <s:textfield label="用户名" name="user.userName" type="required" id="userName" cssStyle="align:'right';"></s:textfield>
	    <s:password label="登录密码" name="user.password" id="pwd"></s:password>
	    <s:password label="确认密码" id="pwd2"></s:password>
	    <s:textfield label="身份证号" name="user.cardId" id="cardId"></s:textfield>
	    <s:select name="user.depId" list="#request.dList" listKey="depId" listValue="depName" label="城市" headerKey="0" headerValue="---请选择城市---" emptyOption="true"></s:select>
	    <s:textfield label="职位" name="user.job" id="job" type="required"></s:textfield>
	    <s:submit value="Submit"></s:submit>
    </s:form>
  </body>
</html>

————我的login页面代码
<%@taglib prefix="s" uri="/struts-tags" %>
<title>登录</title>
<script type="text/javascript">
  function check(){
//需要引入JS( jquery-1.4.2.min.js ),不过引入IncludeJS.jsp页面,也可以的,但是里面没有jquery-1.4.2.min.js
		var uN=$("#userName").val();
		var pW=$("#pwd").val();
		if(uN==""||pW==""){
			alert("请输入账户名或密码!!!");
			return false;
		}
		return true;
  }
  </script>
  </head>  
  <body>
    <a href="uAction!init.action">注册</a>
    <s:form action="uAction!list.action" method="post" onsubmit="return check();">
    	<!-- 默认黑色,在后台addFieldError的对应name的框的上面,可以没有这个
    	<s:fielderror></s:fielderror>
    	 -->
        <s:div align="center">
   			<FONT style="color:red;">${msg}</FONT>
   		</s:div>
    	<s:textfield name="user.userName" id="userName" placeholder=" 输入账号" label="登录账户"/>
    	<s:password name="user.password" id="pwd" placeholder=" 输入密码"  label="登录密码"/>
    	<s:submit   value="提交"></s:submit>
    </s:form>
  </body>
</html>
————我的Struts.xml(与上面有些不同,就因为这一改,发现了这个问题)
<action name="uAction" class="qiu.action.UsersAction">
		<result name="input">/useradd.jsp</result>		 
		<result name="login">/login.jsp</result>
		<result name="list">/usersList.jsp</result>
</action>

 错就错在,我忘记了这个:,所以找到struts.xml里的input,居然转向:useradd.jsp,当然会出错,因为add里有下拉框,它需要值呀!!!所以:

(Struts配置里)
<action name="uAction" class="qiu.action.UsersAction">
			<!-- 
			<result name="input" type="redirectAction">uAction!init.action</result>
			 -->
			<result name="input">/login.jsp</result>
			<result name="add">/userAdd.jsp</result>
			<result name="list">/usersList.jsp</result>
</action>
(UAction里)
public String init(){
		dList=base.queryByHQL("DepsVo");
		return "add";
}

然后要有的都有了:(没有报错)

下面这个异常,因为在使用"Struts2标签库的s:select不得当"时出现的 !!!(上面的s:select,才是正确使用[list、listKey、listValue])

十一月 28, 2018 9:07:39 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.Error: Unresolved compilation problems: 
	DepsVo cannot be resolved to a type
	DepsVo cannot be resolved to a type
	dList cannot be resolved
	DepsVo cannot be resolved to a type
	dList cannot be resolved


	at qiu.action.UsersAction.<init>(UsersAction.java:13)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
	at java.lang.Class.newInstance(Class.java:379)
	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:130)
	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
	at com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
	at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:299)
	at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
	at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
	at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
	at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
	at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)

 

 也这里报的异常:(前提:每次add,我要先进去valAdd()方法验证用户名是否存在,若存在就return"add",所以Struts配置文件的result是这样的,转到add()方法,然后调用base.save(user),加入数据库表!!!但是接着我报了"空指针异常",所以我加上session.setAttribute,到时在add中加上这个,再接着,我就报了"IndexOutOfBoundsException"异常,就是因这导致,你要想呀[或许你已经知道了,若如此请忽略这些],你是要Add呀,那么"验证完用户名是不存在的,那就应该Add到数据库表的呀",所以UList取值一定"无记录或无值",即uList.size==0,那么uList.get(0)是不是就会出现"索引、下标越界"!!!!)

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    java.util.ArrayList.rangeCheck(ArrayList.java:635)
    java.util.ArrayList.get(ArrayList.java:411)
    test.action.UsersAction.valAdd(UsersAction.java:96)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)

改:(我的"Input"是转向/login.jsp)

 接着使用分页技术,报错了:(参数没有控制好)

org.hibernate.exception.GenericJDBCException: could not execute query
	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.loader.Loader.doList(Loader.java:2148)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
	at org.hibernate.loader.Loader.list(Loader.java:2024)
	at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1533)
	at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
	at test.base.BaseDao.findPageByDetach(BaseDao.java:42)
	at test.action.UsersAction.list(UsersAction.java:88)
	at sun.reflect.GeneratedMethodAccessor148.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.throwNotScrollable(SQLServerResultSet.java:375)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetIsScrollable(SQLServerResultSet.java:398)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.absolute(SQLServerResultSet.java:1473)
	at org.hibernate.loader.Loader.advance(Loader.java:1470)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1674)
	at org.hibernate.loader.Loader.doQuery(Loader.java:662)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.doList(Loader.java:2145)
	... 71 more

看我的源码:(错就错在PagerObject.java)

           JSP
<tfoot>
    	<tr>
    			<td colspan="4" align="center">
    				<a href="${pageContext.request.contextPath }/uAction!list.action?pager.currentPage=1&pager.opr=first">第一页</a>
    				<a href="${pageContext.request.contextPath }/uAction!list.action?pager.currentPage=${pager.currentPage }&pager.opr=piror">上一页</a>
    				<a href="${pageContext.request.contextPath }/uAction!list.action?pager.currentPage=${pager.currentPage }&pager.opr=next">下一页</a>
    				<a href="${pageContext.request.contextPath }/uAction!list.action?pager.currentPage=${pager.currentPage }&pager.opr=last">最后页</a>
    			</td>
    	</tr>
</tfoot>
          PagerObject
public void setOpr(String opr) {
		if(opr==null || opr.equals("")){
			opr="first";
		}
		if(opr.equals("first")){//首页(第一页)
			currentPage=1;
		}else if(opr.equals("next")){//下一页
			currentPage = currentPage+1;
			if((currentPage/pageRow)<currentPage){
				currentPage=currentPage-1;
			}
		}else if(opr.equals("piror")){//上一页
			currentPage = currentPage-1;
			if(currentPage<1){
				currentPage=1;
			}
		}else if(opr.equals("last")){//最后一页(末页)
			currentPage=currentPage/pageRow;
		}
		this.opr = opr;
}

改:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yvette_QIU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值