无效的VariableDeclaratorId jsp

时间:2014-05-07 15:00:26

标签: java jsp jsp-tags

我是JSP编程的新手,我需要为项目快速解决错误。如果我的研究不充分,请道歉。

我在jsp中收到以下错误

Syntax error on token "final", invalid VariableDeclaratorId
118:                                                            sanitize = sanitize.replace("[","").trim();
119:                                                            sanitize = sanitize.replace("]","").trim();
120:                                                            sanitize = sanitize.replace("\"","").trim();
121:                                                              String[] final = sanitize.split(",");
122: 
123: 
124:                                                              for(int i=0;i<final.length;i++){


An error occurred at line: 124 in the jsp file: /inc/AddClientForm.jsp
Syntax error on token "final", invalid Expression
121:                                                              String[] final = sanitize.split(",");
122: 
123: 
124:                                                              for(int i=0;i<final.length;i++){
125: 
126: 
127: 

我基本上将一个字符串拆分成一个数组并将其填充到我的jsp上。 我在jsp上有以下导入

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*" %>
<%@ page import="java.lang.String" %>

2 个答案:

答案 0 :(得分:1)

问题与基本的Java编码有关。 final是Java中的关键字,不能将其用作变量名称:

String[] final = sanitize.split(",");

更改变量的名称:

String[] myFinalSanitizedStrings = sanitize.split(",");

除了这个问题,你不应该直接在你的JSP中清理你的String,使用Servlet来做到这一点。不过,您只需使用JSTL <c:out>

即可阻止任何不需要的内容
<c:out value="${whateverStringThatCanPotentiallyGenerateAnXSSAttack}" />

更多信息:

答案 1 :(得分:0)

final是java中的保留关键字

所以你不能这样做String[] final = sanitize.split(",");

将其更改为其他名称

String[] final1 = sanitize.split(",");

在java

中查看this保留关键字