【发布时间】:2014-02-05 10:46:11
【问题描述】:
我尝试在 Lubuntu 13.10 上的 eclipse kepler 上创建简单的 Web 项目。
我在这里遇到了一些麻烦。
当我运行这个项目时:
Run as => Run on server
它没有打开注册表。
如下所示:
为了加载用户表单,我需要在 url /addUser 的末尾添加。
它应该加载AddUserServlet并将请求转发到adduser.jsp。
这是我的weeb.xml:
<servlet>
<servlet-name>ShowUserServlet</servlet-name>
<servlet-class>com.lab.controler.servlets.ShowUsersServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowUserServlet</servlet-name>
<url-pattern>/showUsers</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RegistrationServlet</servlet-name>
<servlet-class>com.lab.controler.servlets.AddUserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegistrationServlet</servlet-name>
<url-pattern>/addUser</url-pattern>
</servlet-mapping>
AddUserServlet的内容:
公共类 AddUserServlet 扩展 HttpServlet {
UserService userService = new UserService();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/pages/addUser.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = new User();
takeParameterFromRequest(request, user);
boolean result = userService.addUser(user);
getServletContext().setAttribute("boolean", result);
request.getRequestDispatcher("/pages/UserAddingResult.jsp").forward(request, response);
}
private void takeParameterFromRequest(HttpServletRequest request, User user) {
user.setName(request.getParameter("firstname"));
user.setLastname(request.getParameter("lastname"));
user.setEmail(request.getParameter("email"));
user.setGender(request.getParameter("optionsRadios"));
user.setCity(request.getParameter("city"));
}
addUser.jsp的sn-p:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Registration Form</title>
</head>
<body>
<h1 align="center">
<b>Registration form</b>
</h1>
<form method="post" action="addUser">
<div class="control-group">
<label class="control-label">First Name</label>
<div class="controls">
<input type="text" name="firstname" maxlength="20"
placeholder="first name" />
</div>
</div>
<div class="control-group">
<label class="control-label">Last Name</label>
<div class="controls">
<input type="text" name="lastname" maxlength="20"
placeholder="last name" />
</div>
</div>
这是项目层次结构:
并加载表单:
我无法弄清楚为什么会发生这种情况......任何建议都非常感谢。
更新:
我遵循A Paul的建议,并添加到web.xml:
<welcome-file-list>
<welcome-file>addUser</welcome-file>
</welcome-file-list>
此已加载的注册表单,但在填写输入并按下 提交 后,它会显示下一个:
这是来自打印堆栈跟踪的 sn-p:
INFO: Server startup in 964 ms
Feb 05, 2014 1:47:16 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Feb 05, 2014 1:47:16 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.TagLibraryValidator
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
【问题讨论】:
标签: java eclipse jsp web tomcat7