首页 > 技术文章 > org.apache.jasper.JasperException: - Page directive must not have multiple occurrences of pageencoding

yangyi9343 2015-10-22 13:08 原文

最近写jsp遇到一系列的低级错误,记录下来权当前车之鉴吧。

错误提示:

SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /jsp04/Zj04_sj_test1_1.jsp(2,1) Page directive must not have multiple occurrences of pageencoding

程序代码如下:

 1 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
 2 <%@ page language="java" import="jsp04.*" pageEncoding="gbk"%>
 3  <%@ page import="javax.servlet.jsp.jstl.sql.Result;"%>
 4 <%
 5 String path = request.getContextPath();
 6 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 7 %>
 8 
 9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
10 <html>
11   <head>
12     <base href="<%=basePath%>">
13     
14     <title>民意调查</title>
15     
16     <meta http-equiv="pragma" content="no-cache">
17     <meta http-equiv="cache-control" content="no-cache">
18     <meta http-equiv="expires" content="0">    
19     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
20     <meta http-equiv="description" content="This is my page">
21     <!--
22     <link rel="stylesheet" type="text/css" href="styles.css">
23     -->
24 
25   </head>
26   
27   <body>
28    <br>
29     在校大学生是否适合做兼职 <br>
30    <br>
31    <%
32    //构造sql语句,取出调查
33    String sql="select * from surveyItem where surveyID=1";
34    Object params[]={};
35    //获取调查项列表
36    Result result=DBHelp.runSelectSql(sql,params);
37    Map[] rows=result.getRows();
38    //循环访问每一个调查项
39    for(int i=0;i<rows.length;i++){
40        //得到调查项目的ID
41        int id=Integer.parseInt(rows[i].get("id").toString());
42        //得到调查项
43        String item=rows[i].get("item").toString();
44    %>
45     <input type="radio" name="radsurver" value="<%=id %>"><%=item %>
46    <%
47    }
48    %><br>
49     <input type="submie" name="Submit" value="提交">
50     <input type="reset" name="Submit2" value="重置"> 
51   </body>
52 </html>
首先,org.apache.jasper.JasperException 中的JasperException
这个异常时jsp引擎解析jsp页面生成servlet时产生的,故错误是在转译阶段,应该是页面的语法有问题,而不是执行阶段出错
然后,检查一下配置,发现页面编码设置了两次,虽然是一样的编码,但还是不被允许的
最后,第二行改为:
  
<%@ page import="jsp04.*" %>

OK  !

 

推荐阅读