Java jsp不会进入servlet
我有一个Java jsp不会进入servlet,java,html,jsp,servlets,Java,Html,Jsp,Servlets,我有一个.jsp页面,其形式如下: <form name="myForm" method="post" action="LoginServlet"> <div class="form-group"> <label for="exampleXPID">userid</label> <div class="input-group"> <span c
.jsp
页面,其形式如下:
<form name="myForm" method="post" action="LoginServlet">
<div class="form-group">
<label for="exampleXPID">userid</label>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" class="form-control" name="exampleXPID" id="exampleXPID" placeholder="XPID" required />
</div>
<span id="usernameError" style="color:red;"></span>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1"><span class="glyphicon glyphicon-star"></span></span>
<input type="password" class="form-control" name="exampleInputPassword1" id="exampleInputPassword1" placeholder="Password" required />
</div>
<span id="passwordError" style="color:red;"></span>
</div>
<hr/>
<button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-lock"></span>Login</button>
<a href="#" style="float:bottom; max-width: 100%;" data-toggle="popover" data-trigger="hover" data-content="Click here to reset your existing Password" data-placement="bottom"><span class="glyphicon glyphicon-question-sign"></span>Reset your Password</a>
<p><br></p>
</form>
当我运行这个项目时,它会转到第一页,当我点击登录按钮时,我得到错误404,说找不到源代码。MyLoginServlet
与以下内容放在同一个项目中:
非常感谢任何帮助
HTTP状态500-错误:
type Exception report
message Error instantiating servlet class com.javacodegeeks.example.messenger.service.myservlet
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class com.javacodegeeks.example.messenger.service.myservlet
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
root cause
java.lang.ClassNotFoundException: com.javacodegeeks.example.messenger.service.myservlet
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.
这是我的web.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.javacodegeeks.example.messenger</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.javacodegeeks.example.messenger.service.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
Jersey Web应用程序
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.javacodegeeks.example.messenger
1.
Jersey Web应用程序
/webapi/*
罗金瑟夫莱特酒店
罗金瑟夫莱特酒店
com.javacodegeeks.example.messenger.service.LoginServlet
罗金瑟夫莱特酒店
/罗金瑟夫莱特酒店
可能会尝试此
包括按钮的名称
<button type="submit" name="button1" class="btn btn-primary">Login</button>
希望这能帮助您……您忘记在servlet中初始化打印编写器了:
PrintWriter out = response.getWriter();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("inside servlet 2");
String XPID = request.getParameter("exampleXPID");
String password = request.getParameter("exampleInputPassword1");
PrintWriter out = response.getWriter();
out.println("<html><body><script>alert("+XPID+")</script></body></html>");
}
更新
// Set the MIME type for the response message
response.setContentType("text/html");
// Write to network
PrintWriter out = response.getWriter();
您的Servlet似乎没有在
web.xml
或通过注释
正确映射
首先检查web.xml
以了解正确的映射:
假设您的LoginServlet
在包aa.bb.cc下。如果是:
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>
aa.bb.cc.LoginServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
应该是:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.javacodegeeks.example.messenger.service.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
import javax.servlet.http.HttpServletResponse;
希望它能起作用。您确定您已经在web.xml中声明了servlet和servlet映射吗?您是否尝试重定向而不是使用打印编写器?您能提供语法吗@Kerppag@TheLuminor如果您想使用简单的JSPServlet,则只需导入javax.servlet.jar文件;如果您想使用Jersey Web应用程序,则使用Jersey-bundle-1.8.jar。希望这能解决你的问题。我以前试过做aht。但是当我这样做的时候,我得到一个错误,说
响应不能被解析。有什么想法吗?把这段代码放在print writer,response.setContentType(“text/html”)代码>用于指定响应消息的mime类型。我还更新了上面的答案。我也尝试了这个。但它仍然显示错误500
。我的问题是这方面的记录/但是错误表明它无法访问LoginServlet
本身!我不知道你的解决方案会有什么帮助。你能详细说明一下吗@我试过你说的了。我得到了错误500。编辑问题以供参考。请调查一下!谢谢那么这个类是什么:“com.javacodegeks.example.messenger.service.myservlet”您在应用程序中的某个地方使用它,而不是映射到web.xml中。这就是为什么会出现这种错误。也发布你的web.xml。对不起,我的不好。我正在使用LoginServlet
,但它仍然无法找到LoginServlet
。如果您未使用此“myservlet”类..请将其从项目中删除。。。如果它不能解决您的问题,请发布您的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.javacodegeeks.example.messenger.service.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
import javax.ws.rs.core.Response;
import javax.servlet.http.HttpServletResponse;