如下是代码
第一部分是web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
s2sh
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
spring
org.springframework.web.servlet.DispatcherServlet
0
spring
.do
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
<!-- 生成验证码配置 servlet-->
Kaptcha
com.google.code.kaptcha.servlet.KaptchaServlet
Kaptcha
/kaptcha.jpg
接下来是页面的代码,我用的是html,这块声明一下这个配置用jsp是没有问题的,只是挪到了html页面中不知怎地就报错了,不影响页面生成验证码图片,但是后台是取不到session中的字符串的,因为session并没有创建,报的错也是session不能在response相应后创建。
<!-- 验证码开始 -->
<div>
<img src="../kaptcha.jpg" id="kaptchaImage" width="300px" height="50px" style="padding-top: 25px; "/>
<input type="text" class="form-control col-xs-4" id="passWord" placeholder="请输入验证码" >
</div>
<!-- 验证码结束 -->
接下来是页面点击图片生成验证码的js代码
$(function(){ $('#kaptchaImage').click(function () { $(this).attr('src', '../kaptcha.jpg?' + Math.floor(Math.random()*100) ); }); });然后以下是报错信息
三月 24, 2017 9:28:41 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [Kaptcha] in context with path [/webapp] threw exception
java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:3016)
at org.apache.catalina.connector.Request.getSession(Request.java:2385)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:897)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:909)
at com.google.code.kaptcha.servlet.KaptchaServlet.doGet(KaptchaServlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
*