Java JSP Servlet的org.apache.jasper.jaspereException
我正在创建我的第一个JSPServlet,但有一个问题我不明白。这个程序非常简单 我有两个部分:Java JSP Servlet的org.apache.jasper.jaspereException,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我正在创建我的第一个JSPServlet,但有一个问题我不明白。这个程序非常简单 我有两个部分: 添加新行的java+jsp 一个java+jsp来显示这些行 我正在加载url: http://localhost/test/addUf.jsp 填写字段后,单击按钮。数据库插入正常,我现在被重定向到 http://localhost/test/servletRecord 我的问题发生在它尝试加载此页面时: 05-Mar-2021 12:29:45.046 INFOS [Catalina-uti
- 添加新行的java+jsp
- 一个java+jsp来显示这些行
05-Mar-2021 12:29:45.046 INFOS [Catalina-utility-1] org.apache.catalina.core.StandardContext.reload Le rechargement de ce contexte est terminé
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:605)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:423)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at servletRecord.doGet(servletRecord.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:621)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
... 37 more
Caused by: java.lang.IllegalArgumentException: Directive de page : valeur invalide pour import
at org.apache.jasper.compiler.Node$PageDirective.validateImport(Node.java:619)
at org.apache.jasper.compiler.Node$PageDirective.addImport(Node.java:599)
at org.apache.jasper.compiler.Parser.parsePageDirective(Parser.java:366)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:478)
at org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1797)
at org.apache.jasper.compiler.Parser.parse(Parser.java:141)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
at org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:127)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
... 38 more
org.apache.jasper.JasperException: org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:605)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:423)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at servletRecord.doGet(servletRecord.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:621)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
... 37 more
Caused by: java.lang.IllegalArgumentException: Directive de page : valeur invalide pour import
at org.apache.jasper.compiler.Node$PageDirective.validateImport(Node.java:619)
at org.apache.jasper.compiler.Node$PageDirective.addImport(Node.java:599)
at org.apache.jasper.compiler.Parser.parsePageDirective(Parser.java:366)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:478)
at org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1797)
at org.apache.jasper.compiler.Parser.parse(Parser.java:141)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
at org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:127)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
... 38 more
这是我的档案:
addUF.java
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.sql.*;
import java.util.*;
import com.microsoft.sqlserver.jdbc.*;
public class addUf extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection connBDUtil = null;
String id_config = request.getParameter("id_config").toString();
String uf_code = request.getParameter("uf_code").toString();
String libelle = request.getParameter("libelle").toString();
String nbLits = request.getParameter("nbLits").toString();
String actif = "1";
if(request.getParameter("actif")== null) actif = "0";
Statement stmt;
try {SQLServerDataSource ds_BD_util = new SQLServerDataSource();
ds_BD_util.setUser(db.UserBD_util);
ds_BD_util.setPassword(db.PasswordBD_util);
ds_BD_util.setServerName(db.ServerNameBD_util);
ds_BD_util.setPortNumber(db.PortNumberBD_util);
ds_BD_util.setDatabaseName(db.DatabaseNameBD_util);
connBDUtil = ds_BD_util.getConnection();
System.out.println("Connected to the database");
//test de validité
String sqlText = "INSERT INTO LitsConfig (id_config, uf_code, libelle, nbLits, actif) " +
"VALUES ('" + id_config + "', '" + uf_code + "', '" + libelle + "', '" + nbLits + "', '" + actif +"')" ;
System.out.println("SQL : " + sqlText);
stmt = connBDUtil.createStatement();
int i = stmt.executeUpdate(sqlText);
System.out.println("query" + sqlText);
if(i>0)
{
response.sendRedirect("servletRecord");
}
connBDUtil.close();
System.out.println("Disconnected from database");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
addUF.jsp
<html>
<head></head>
<body>
<form name="userform" method="post" action="addUf">
<br><br><br>
<table align="center" width="300px" style="background-color:#EDF6EA;border:1px solid #000000;">
<tr><td colspan=2 style="font-weight:bold;" align="center">Ajouter une UF</td></tr>
<tr><td colspan=2 align="center" height="10px"></td></tr>
<tr>
<td style="font-weight:bold;">Id config</td>
<td><input type="text" name="id_config" value=""></td>
</tr
<tr>
<td style="font-weight:bold;">UF</td>
<td><input type="text" name="uf_code" value=""></td>
</tr>
<tr>
<td style="font-weight:bold;">Libellé</td>
<td><input type="text" name="libelle" value=""></td>
</tr>
<tr>
<td style="font-weight:bold;">Nombre de lits</td>
<td><input type="text" name="nbLits" value=""></td>
</tr>
<tr>
<td style="font-weight:bold;">actif</td>
<td><input type="checkbox" name="actif" value=""></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value="Ajouter" style="background-color:#49743D;font-weight:bold;color:#ffffff;"></td>
</tr>
<tr><td colspan=2 align="center" height="10px"></td></tr>
</table>
</form>
</body>
</html>
home.jsp
<%@ page language="java" import="java.util.*;"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Occupation des lits de pédiatrie</TITLE>
<script language="javascript">
function editrecord(id){
window.location.href="editServlet/"+id;
}
function deleteRecord(id){
window.location.href="deleteUser/"+id;
}
</script>
</HEAD>
<BODY>
<br>
<table align="center">
</table>
<br>
<table width="600px" align="center" style="background-color:#EDF6EA;border:1px solid #000000;">
<tr><td colspan=9 align="center" height="10px"></td></tr>
<tr><td colspan=9 align="center"><a href="addUf.jsp" style="font-weight:bold;color:#cc0000;">Ajouter une configuration d'UF</a></td></tr>
<tr><td colspan=9 align="center" height="10px"></td></tr>
<tr style="background-color:#7BA88B;font-weight:bold;">
<td>Config Id</td>
<td>Codes UF</td>
<td>Libellé</td>
<td>Nombre de lits</td>
<td>Actif</td>
<td>Edit</td>
<td>Delete</td>
</tr>
<%
String bgcolor="";
int count=0;
List viewList = new ArrayList();
Iterator viewitrLitsConfig;
if(request.getAttribute("litsConfigList")!=null && request.getAttribute("litsConfigList")!="")
{
List litsConfigList = (ArrayList)request.getAttribute("litsConfigList");
Iterator itrLitsConfig = litsConfigList.iterator();
while(itrLitsConfig.hasNext())
{
if(count%2==0)
{
bgcolor = "#C8E2D1";
}
else
{
bgcolor = "#EAF8EF";
}
viewList = (ArrayList)itrLitsConfig.next();
int id = Integer.parseInt(viewList.get(0).toString());
viewitrLitsConfig = viewList.iterator();
%>
<tr style="background-color:<%=bgcolor%>;">
<%
while(viewitrLitsConfig.hasNext())
{
%>
<td><%=viewitrLitsConfig.next()%></td>
<%
}
count++;
%>
<td><input type="button" name="edit" value="Edit" style="background-color:#49743D;font-weight:bold;color:#ffffff;" onclick="editRecord(<%=id%>);" ></td>
<td><input type="button" name="delete" style="background-color:#ff0000;font-weight:bold;;color:#ffffff;" value="Delete" onclick="deleteRecord(<%=id%>);"></td>
</tr>
<%
}
}
if(count==0)
{
%>
<tr><td colspan="9" align="center"> </td></tr>
<tr><td colspan="9" align="center">Aucun enregistrement disponible</td></tr>
<%
}
%>
<tr><td colspan=9 align="center" height="2px"></td></tr>
</table>
</BODY>
</HTML>
自然之光职业
函数editrecord(id){
window.location.href=“editServlet/”+id;
}
函数deleteRecord(id){
window.location.href=“deleteUser/”+id;
}
配置Id
代码UF
利伯莱
名称
活动
编辑
删除
奥村注册争议
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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_2_5.xsd"
version="2.5">
<display-name>Test Config</display-name>
<description>Test Config</description>
<servlet>
<servlet-name>servletrecord</servlet-name>
<servlet-class>servletRecord</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletrecord</servlet-name>
<url-pattern>/servletRecord</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>addUf</servlet-name>
<servlet-class>addUf</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addUf</servlet-name>
<url-pattern>/addUf</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>editservlet</servlet-name>
<servlet-class>userServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>editservlet</servlet-name>
<url-pattern>/editServlet/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>edituser</servlet-name>
<servlet-class>editUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>edituser</servlet-name>
<url-pattern>/editUser</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>deleteuser</servlet-name>
<servlet-class>deleteUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>deleteuser</servlet-name>
<url-pattern>/deleteUser/*</url-pattern>
</servlet-mapping>
</web-app>
测试配置
测试配置
servletrecord
servletRecord
servletrecord
/servletRecord
阿杜夫
阿杜夫
阿杜夫
/阿杜夫
editservlet
用户servlet
editservlet
/editServlet/*
编辑用户
编辑用户
编辑用户
/编辑用户
删除用户
删除用户
删除用户
/删除用户/*
我错过了什么
我的LIB是:
ojdbc6.jar
servlet-api.jar
sqljdbc.jar
谢谢你的帮助!
Tomcat 9/Java 8该消息是由于
import=“Java.util.*”
属性引起的,该属性应该是import=“Java.util.*”
(cf)
然而,由于JSP 2.0,不鼓励使用scriplets
,而支持表达式${…}
和标记。假设您有这样一个类:
公共类LitsConfig{
私有int-id;
私有字符串codeUf;
私串诽谤;
私家侦探;
私有布尔活动;
//接球手和接球手
...
}
为了表示行数据并假设servlet将类型为List
的名为“litsConfig”
的属性放入请求上下文中,您可以简化JSP页面,如下所示:
在此处插入标题
表1.main{
宽度:600px;
保证金:自动;
背景色:#EDF6EA;
边框:1px实心#000000;
}
标题{
背景色:#7BA88B;
字体大小:粗体;
}
tr.data:第n个子项(奇数){
背景色:#C8E2D1;
}
tr.data:第n个子项(偶数){
背景色:#EAF8EF;
}
配置Id
代码UF
利伯莱
名称
活动
编辑
删除
${lit.id}
${lit.codeUf}
${lit.libelle}
${lit.noLits}
${lit.actif?“oui”:“非”}
奥村注册争议
备注:您需要向依赖项添加和。您的
页面
指令(import
属性)中有语法错误。检查语法是否正确。顺便说一句,scriplets
应替换为和。所有的准备工作都应该在servletRecord
中完成(奇怪的名字,Java中的类名应该以大写字母开头)。关于类名的大写字母,我同意,这是一个教程,我没有重写它。我读了你关于EL表达式和JSTL的链接,但我没有掌握背后的概念。你能告诉我如何将我的部分代码翻译成JSTL以便我能理解吗?Thx很多:)如果我理解正确,那么想法是使用java对象来模拟我的表而不是通用数组?主要想法是完全替换JSP中的java代码(参见。[这个答案]。使用只是使JSP更具可读性的一种方法。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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_2_5.xsd"
version="2.5">
<display-name>Test Config</display-name>
<description>Test Config</description>
<servlet>
<servlet-name>servletrecord</servlet-name>
<servlet-class>servletRecord</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletrecord</servlet-name>
<url-pattern>/servletRecord</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>addUf</servlet-name>
<servlet-class>addUf</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addUf</servlet-name>
<url-pattern>/addUf</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>editservlet</servlet-name>
<servlet-class>userServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>editservlet</servlet-name>
<url-pattern>/editServlet/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>edituser</servlet-name>
<servlet-class>editUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>edituser</servlet-name>
<url-pattern>/editUser</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>deleteuser</servlet-name>
<servlet-class>deleteUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>deleteuser</servlet-name>
<url-pattern>/deleteUser/*</url-pattern>
</servlet-mapping>
</web-app>