在JSP中,以下代码编译错误的是( )。 (选择一项) A: <%! String print( ){return "*****";}%> <%=print() %> B:<% String print( ){return "*****"}%> <%=print() %> c:<% int num=10; %> <%= num %> D:<%! int num=10; %> <%=num %>
时间: 2023-08-07 18:04:05 浏览: 71
正确选项是 D:
```
<%! int num=10; %> <%=num %>
```
解析:
A 选项中,使用了 JSP 声明标签(`<%! ... %>`)定义了一个方法 print(),并在 JSP 脚本中使用了 `<%= ... %>` 输出方法的返回值。这段代码没有语法错误。
B 选项中,使用了 JSP 脚本标签(`<% ... %>`)定义了一个方法 print(),并在 JSP 脚本中使用了 `<%= ... %>` 输出方法的返回值。这段代码没有语法错误。
C 选项中,使用了 JSP 脚本标签(`<% ... %>`)定义了一个变量 num,然后在 JSP 脚本中使用了 `<%= ... %>` 输出该变量的值。这段代码没有语法错误。
D 选项中,使用了 JSP 声明标签(`<%! ... %>`)定义了一个变量 num,然后在 JSP 脚本中使用了 `<%= ... %>` 输出该变量的值。这段代码会编译错误,因为在 JSP 声明标签中定义的变量只能在当前 JSP 页面中使用,不能在 JSP 脚本中使用。因此,该代码应该改为:
```
<% int num = 10; %> <%= num %>
```
相关问题
给定以下书目: "Java基础教程","XML基础教程","JSP基础教程","C++基础教程","J2ME编程","操作系统","数据库技术", 及对应价格: 29,21,22,29,34,32,29。 使用Java语言,实现对书目按照价格从小到大的顺序进行排序。 输入要查找的书目价格,给出对应查找价格的图书信息。 图书类代码如下: class Book implements Comparable{ private double price; private String name; public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } //重写Comparable接口的 compareTo方法,实现对图书价格进行从小到大的排序 @Override public int compareTo(Book book) { return (int)(this.price-book.price)\*1000; } } 输入样例: 在这里输入要查找的图书价格。例如: 29 输出样例: 输出如下内容。例如: 按照价格排序********** XML基础教程:21.0 JSP基础教程:22.0 Java基础教程:29.0 C++基础教程:29.0 数据库技术:29.0 操作系统:32.0 J2ME编程:34.0 相同价格的书********** Java基础教程(29.0) C++基础教程(29.0) 数据库技术(29.0) 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB Java (javac) 1
这是一个简单的排序和查找的问题,可以使用Java内置的排序方法Arrays.sort和二分查找方法Arrays.binarySearch实现。
首先,创建一个Book类,重写Comparable接口的compareTo方法,实现对图书价格进行从小到大的排序:
```java
class Book implements Comparable<Book>{
private double price;
private String name;
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//重写Comparable接口的compareTo方法,实现对图书价格进行从小到大的排序
@Override
public int compareTo(Book book) {
return Double.compare(this.price, book.price);
}
}
```
然后,创建一个BookStore类,将所有书目添加到一个Book数组中,并按照价格从小到大排序:
```java
import java.util.Arrays;
import java.util.Scanner;
public class BookStore {
private Book[] books;
public BookStore() {
books = new Book[7];
books[0] = new Book();
books[0].setName("Java基础教程");
books[0].setPrice(29);
books[1] = new Book();
books[1].setName("XML基础教程");
books[1].setPrice(21);
books[2] = new Book();
books[2].setName("JSP基础教程");
books[2].setPrice(22);
books[3] = new Book();
books[3].setName("C++基础教程");
books[3].setPrice(29);
books[4] = new Book();
books[4].setName("J2ME编程");
books[4].setPrice(34);
books[5] = new Book();
books[5].setName("操作系统");
books[5].setPrice(32);
books[6] = new Book();
books[6].setName("数据库技术");
books[6].setPrice(29);
Arrays.sort(books); //按照价格从小到大排序
}
public void search(double price) {
System.out.println("按照价格排序**********");
for (Book book : books) {
if (book.getPrice() == price) {
System.out.println(book.getName() + ":" + book.getPrice());
}
}
System.out.println("相同价格的书**********");
int index = Arrays.binarySearch(books, new Book(){{setPrice(price);}}, null);
if (index >= 0) {
for (int i = index; i < books.length; i++) {
if (books[i].getPrice() != price) {
break;
}
System.out.println(books[i].getName() + "(" + books[i].getPrice() + ")");
}
for (int i = index - 1; i >= 0; i--) {
if (books[i].getPrice() != price) {
break;
}
System.out.println(books[i].getName() + "(" + books[i].getPrice() + ")");
}
} else {
System.out.println("没有找到价格为" + price + "的书目!");
}
}
public static void main(String[] args) {
BookStore store = new BookStore();
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要查找的图书价格:");
double price = scanner.nextDouble();
store.search(price);
}
}
```
在main方法中,我们首先创建一个BookStore对象,然后通过Scanner读取用户输入的要查找的图书价格。接下来,调用search方法,按照价格从小到大输出所有书目,并查找出价格与输入相同的书目。
在search方法中,我们首先按照价格从小到大输出所有书目,并将价格与输入相同的书目输出。然后,使用Arrays.binarySearch方法查找价格与输入相同的书目,并输出相同价格的书目。如果没有找到价格为输入的书目,则输出提示信息。
以上就是完整的代码实现。
用jsp实现。 写出如下问题代码 1) intput. jsp中包含一个表单,其中“体育爱好”为允许多项选择的 字段式选择栏控件,且“篮球”“乒乓球” 选项为默认选中; 2)单击input. jsp的“注册”按钮将表单提交给handle. jsp处理,接收各表单控件信息,在handle 页面中进行必要的中文乱码处理;同时判断如果用户没有输入呢称,. 跳转回input. jsp页面并提示用户信息“呢称不能为空,请重新输入!” 3)如果用户输入呢称合法,则接受并打印出所有注册信息,在该页面 中添加一一个超链接一-修 改昵称,点击超链接跳转到updateForm. jsp,并将现有昵称使用session存储,使得在其他页面也能够使用; 4)在updateForm. jsp页面中创建表单,接收并展示现有昵称; 5)单击updateFrom. jsp页面的“修改”按钮后,将表单提交给 output. jsp页面处理。在该页面中显示信息。
1) intput.jsp中包含一个表单,其中“体育爱好”为允许多项选择的字段式选择栏控件,且“篮球”“乒乓球”选项为默认选中:
```jsp
<!DOCTYPE html>
<html>
<head>
<title>注册页面</title>
</head>
<body>
<h1>用户注册</h1>
<form action="handle.jsp" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" id="username"><br><br>
<label for="password">密码:</label>
<input type="password" name="password" id="password"><br><br>
<label for="email">邮箱:</label>
<input type="email" name="email" id="email"><br><br>
<label for="phone">手机号:</label>
<input type="text" name="phone" id="phone"><br><br>
<label for="hobby">体育爱好:</label>
<select name="hobby" id="hobby" multiple>
<option value="basketball" selected>篮球</option>
<option value="pingpong" selected>乒乓球</option>
<option value="football">足球</option>
<option value="tennis">网球</option>
</select><br><br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
2)单击input.jsp的“注册”按钮将表单提交给handle.jsp处理,接收各表单控件信息,在handle页面中进行必要的中文乱码处理;同时判断如果用户没有输入呢称,跳转回input.jsp页面并提示用户信息“呢称不能为空,请重新输入!”
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>处理页面</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8"); //设置请求参数的编码格式为UTF-8
response.setContentType("text/html;charset=UTF-8"); //设置响应内容的编码格式为UTF-8
String username = request.getParameter("username"); //获取表单中的用户名
String password = request.getParameter("password"); //获取表单中的密码
String email = request.getParameter("email"); //获取表单中的邮箱
String phone = request.getParameter("phone"); //获取表单中的手机号
String[] hobby = request.getParameterValues("hobby"); //获取表单中的体育爱好
if(username == null || "".equals(username.trim())) { //判断用户名是否为空
out.print("<script>alert('呢称不能为空,请重新输入!');location.href='input.jsp';</script>"); //弹窗提示用户,跳转回input.jsp页面
return;
}
//打印出所有注册信息
out.print("<h1>用户注册信息</h1>");
out.print("<p>用户名:" + username + "</p>");
out.print("<p>密码:" + password + "</p>");
out.print("<p>邮箱:" + email + "</p>");
out.print("<p>手机号:" + phone + "</p>");
out.print("<p>体育爱好:");
if(hobby != null) {
for(String h : hobby) {
out.print(h + " ");
}
}
out.print("</p>");
//添加超链接-修改昵称,点击超链接跳转到updateForm.jsp
session.setAttribute("username", username); //使用session存储现有昵称,使得在其他页面也能够使用
out.print("<a href='updateForm.jsp'>修改昵称</a>");
%>
</body>
</html>
```
3)如果用户输入呢称合法,则接受并打印出所有注册信息,在该页面中添加一个超链接-修改昵称,点击超链接跳转到updateForm.jsp,并将现有昵称使用session存储,使得在其他页面也能够使用;
4)在updateForm.jsp页面中创建表单,接收并展示现有昵称;
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>修改昵称</title>
</head>
<body>
<h1>修改昵称</h1>
<form action="output.jsp" method="post">
<label for="username">现有昵称:</label>
<%
String username = (String)session.getAttribute("username"); //从session中获取现有昵称
out.print("<input type='text' name='username' id='username' value='" + username + "' readonly>"); //将现有昵称展示在表单中,并设置为只读
%><br><br>
<label for="newUsername">新昵称:</label>
<input type="text" name="newUsername" id="newUsername"><br><br>
<input type="submit" value="修改">
</form>
</body>
</html>
```
5)单击updateFrom.jsp页面的“修改”按钮后,将表单提交给output.jsp页面处理,在该页面中显示信息。
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>输出页面</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8"); //设置请求参数的编码格式为UTF-8
response.setContentType("text/html;charset=UTF-8"); //设置响应内容的编码格式为UTF-8
String newUsername = request.getParameter("newUsername"); //获取表单中的新昵称
//显示信息
out.print("<h1>修改昵称结果</h1>");
out.print("<p>现有昵称:" + session.getAttribute("username") + "</p>");
out.print("<p>新昵称:" + newUsername + "</p>");
session.setAttribute("username", newUsername); //将新昵称存储在session中,更新现有昵称
%>
</body>
</html>
```
阅读全文