在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 浏览: 44
正确选项是 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 %>
```
相关问题
请给我一个包含了用户登录和注册的jsp代码
好的,以下是一个包含了用户登录和注册的jsp代码,你可以根据自己的需要进行修改:
1. 注册页面(register.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="register.do" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" id="username" required><br>
<label for="password">密码:</label>
<input type="password" name="password" id="password" required><br>
<label for="confirm_password">确认密码:</label>
<input type="password" name="confirm_password" id="confirm_password" required><br>
<input type="submit" value="注册">
</form>
<br>
<p>已有账号?<a href="login.jsp">点击登录</a></p>
</body>
</html>
```
2. 登录页面(login.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="login.do" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" id="username" required><br>
<label for="password">密码:</label>
<input type="password" name="password" id="password" required><br>
<input type="submit" value="登录">
</form>
<br>
<p>没有账号?<a href="register.jsp">点击注册</a></p>
</body>
</html>
```
3. 注册处理(register.do)
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<title>注册处理</title>
</head>
<body>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirm_password = request.getParameter("confirm_password");
if(!password.equals(confirm_password)) {
out.print("两次输入的密码不一致,请重新输入!");
return;
}
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8", "root", "123456");
String sql = "insert into user(username, password) values(?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
pstmt.executeUpdate();
out.print("注册成功!");
} catch (Exception e) {
e.printStackTrace();
out.print("注册失败!");
} finally {
if(pstmt != null) {
pstmt.close();
}
if(conn != null) {
conn.close();
}
}
%>
</body>
</html>
```
4. 登录处理(login.do)
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<title>登录处理</title>
</head>
<body>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8", "root", "123456");
String sql = "select * from user where username=? and password=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if(rs.next()) {
out.print("登录成功!");
} else {
out.print("用户名或密码错误,请重新登录!");
}
} catch (Exception e) {
e.printStackTrace();
out.print("登录失败!");
} finally {
if(rs != null) {
rs.close();
}
if(pstmt != null) {
pstmt.close();
}
if(conn != null) {
conn.close();
}
}
%>
</body>
</html>
```
以上代码仅供参考,具体实现还需要根据实际情况进行修改和完善。另外,为了安全起见,建议在存储密码时使用加密算法来保护用户信息。
给定以下书目: "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方法查找价格与输入相同的书目,并输出相同价格的书目。如果没有找到价格为输入的书目,则输出提示信息。
以上就是完整的代码实现。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)