相关疑难解决方法(0)

如何避免JSP文件中的Java代码?

我是Java EE的新手,我知道类似以下三行

<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
Run Code Online (Sandbox Code Playgroud)

是一种旧式的编码方式,在JSP版本2中,存在一种避免JSP文件中的Java代码的方法.有人可以告诉我替代的JSP 2行,以及这种技术的名称是什么?

java jsp scriptlet

1649
推荐指数
24
解决办法
28万
查看次数

将请求参数作为UTF-8编码的字符串传递

我正在创建一个简单的登录页面,我想将登录和密码参数作为UTF-8编码的字符串传递.正如你在下面的代码中看到的那样,第一行是我将编码设置为UTF-8的地方,但它似乎毫无意义,因为它不起作用.当我使用带重音的登录名和密码参数时,结果页面会收到奇怪的字符.

如何以适用于所有浏览器的方式正确设置字符编码?

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>My Page</title>
    </head>

    <body>
        <h1>Welcome to My Page</h1>

        <form name="login" action="login.jsp" method="POST">
            Login:<br/>
            <input type="text" name="login" value="" /><br/>
            Password:<br/>
            <input type="password" name="password" value="" /><br/>
            <br/>
            <input type="submit" value="Login" /><br/>
        </form>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

jsp servlets utf-8 character-encoding

27
推荐指数
2
解决办法
8万
查看次数

JSP没有为HTML表单POST显示正确的UTF-8内容

我正在将Java 11与带有最新JSP / JSTL的Tomcat 9配合使用。我正在Windows 10的Chrome 71和Firefox 64.0中进行测试。我有以下测试文档:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en-US">
<head>
  <meta charset="UTF-8"/>
  <title>Hello</title>
</head>
<body>
  <c:if test="${not empty param.fullName}">
    <p>Hello, ${param.fullName}.</p>
  </c:if>

  <form>
    <div>
      <label>Full name: <input name="fullName" /></label>
    </div>
    <button>Say Hello</button>
  </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这也许是最简单的形式。如您所知,表单method默认为get,表单action默认为""(提交到同一页面),表单enctype默认为application/x-www-form-urlencoded

如果我在字段中输入名称“FlávioJosé”(巴西著名的法罗歌手和音乐家)并提交,则通过将该表单通过HTTP提交GET到同一页面hello.jsp?fullName=Fl%C3%A1vio+Jos%C3%A9。这是正确的,并且页面上显示:

Hello, Flávio José.
Run Code Online (Sandbox Code Playgroud)

如果将表单更改methodpost并输入相同的名称“FlávioJosé”,则表单内容将通过提交POST,并带有HTTP请求内容:

fullName=Fl%C3%A1vio+Jos%C3%A9
Run Code Online (Sandbox Code Playgroud)

这似乎也是正确的。但是这次页面显示:

Hello, Flávio …
Run Code Online (Sandbox Code Playgroud)

java forms jsp tomcat servlets

5
推荐指数
1
解决办法
367
查看次数

标签 统计

jsp ×3

java ×2

servlets ×2

character-encoding ×1

forms ×1

scriptlet ×1

tomcat ×1

utf-8 ×1