servlet接受参数 如何处理进行模糊查询
时间: 2024-02-02 12:04:39 浏览: 47
在servlet中接收参数可以通过request对象中的getParameter()方法来获取参数值,例如:
```java
String keyword = request.getParameter("keyword");
```
接收到参数后,可以使用SQL语句进行模糊查询,例如:
```java
String sql = "SELECT * FROM table_name WHERE column_name LIKE '%" + keyword + "%'";
```
其中,%表示通配符,可以匹配任意字符。这样就可以查询到包含关键字的记录了。注意,为了避免SQL注入攻击,建议使用PreparedStatement预处理语句。
相关问题
javaee在数据库中建立表格T BOOK(BOOKID,BOOKNAME BOOKPRICE),插入一些记录。1.编写一个模糊查询图书的应用,输入图书名称的模糊资料,显示查询的图书的ID、名称和价格。要求提交给Servlet来处理。
好的,我会尽力回答您的问题。首先,您需要编写一个名为 `BookQueryServlet` 的 Servlet 类来处理客户端的请求。在这个类中,您需要实现以下方法:
```java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 从请求参数中获取模糊查询的图书名称
String bookName = request.getParameter("bookName");
// 2. 连接数据库并执行模糊查询
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Book> bookList = new ArrayList<>();
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database_name", "your_username", "your_password");
pstmt = conn.prepareStatement("SELECT BOOKID, BOOKNAME, BOOKPRICE FROM T_BOOK WHERE BOOKNAME LIKE ?");
pstmt.setString(1, "%" + bookName + "%");
rs = pstmt.executeQuery();
while (rs.next()) {
int bookId = rs.getInt("BOOKID");
String name = rs.getString("BOOKNAME");
double price = rs.getDouble("BOOKPRICE");
Book book = new Book(bookId, name, price);
bookList.add(book);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 3. 关闭数据库连接
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
// 4. 将查询结果封装为 JSON 格式并发送给客户端
response.setContentType("application/json;charset=utf-8");
PrintWriter out = response.getWriter();
Gson gson = new Gson();
String json = gson.toJson(bookList);
out.write(json);
out.flush();
out.close();
}
```
在上面的代码中,我们首先从请求参数中获取模糊查询的图书名称,然后连接数据库并执行模糊查询。查询结果以 `Book` 对象的形式存储在一个列表中。最后,我们将查询结果封装为 JSON 格式并发送给客户端。
为了能够正确地处理客户端的请求,我们还需要定义 `Book` 类。这个类应该包含三个属性:`bookId`、`name` 和 `price`。可以使用以下代码来定义 `Book` 类:
```java
public class Book {
private int bookId;
private String name;
private double price;
public Book(int bookId, String name, double price) {
this.bookId = bookId;
this.name = name;
this.price = price;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
```
最后,我们需要在 `web.xml` 文件中配置 `BookQueryServlet`,以便能够接收客户端的请求。可以使用以下代码来配置 `BookQueryServlet`:
```xml
<servlet>
<servlet-name>BookQueryServlet</servlet-name>
<servlet-class>com.example.BookQueryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BookQueryServlet</servlet-name>
<url-pattern>/book/query</url-pattern>
</servlet-mapping>
```
在上面的代码中,我们将 `BookQueryServlet` 映射到了 `/book/query` 路径,这意味着客户端可以通过向这个路径发送 POST 请求来执行模糊查询。
现在,您可以启动您的 JavaEE 应用程序并使用客户端向 `/book/query` 路径发送 POST 请求来执行模糊查询。请注意,请求参数应该包含一个名为 `bookName` 的参数,其值为您要查询的图书名称的模糊资料。
应用jsp、servlet、Filter、c3p0或Druid连接池、Jquery Ajax实现:一个登录页面,一个数据操作页面。 ### 2、功能需求 #### 登录页面:登录并过滤用户; 数据操作界面:显示当前登录用户;要有增加、修改、删除、查询按钮并实现功能; 样式:页面样式用bootstrap进行美化; 1. 登录功能:用jsp写登录页面,用过滤器链过滤用户小明、小红,并在网页中显示“XX,禁止访问”,其他人访问时,到数据库中查询,若用户名、密码匹配,则携带登陆人的参数跳转到数据操作页面并显示“您好,XXX”;否则显示“登录失败,用户名密码不正确”; 2. 查询功能:通过输入参数进行模糊查询数据;当所有参数为空时查询所有,并显示在表格; 3. 删除功能:数据可通过勾选进行多条删除数据,并显示删除成功; 4. 增加功能:通过输入参数将数据添加至数据库中,并显示添加成功; 5. 修改功能:将新数据添加至输入框中,点击修改按钮根据id进行修改,如果数据库没有此id信息,页面显示“无此信息”;若修改失败,则显示“修改失败”;
这是一个比较复杂的Web应用开发需求,需要使用多种技术和工具来实现。下面是一些技术和工具的介绍和使用方法:
1. JSP和Servlet:JSP是Java Server Pages的缩写,是一种动态网页技术,可以将Java代码嵌入到HTML页面中,以实现动态生成网页的功能;Servlet是Java Servlet的缩写,是一种基于Java的服务器端程序,可以接收和处理客户端HTTP请求,并返回响应。
2. Filter:Filter是Java Servlet API中的一种特殊的组件,用于在Servlet容器中对请求和响应进行拦截和处理,可以实现诸如身份认证、日志记录、编码转换等功能。
3. c3p0或Druid连接池:连接池是一种数据库连接管理技术,可以提高数据库的访问效率和性能。c3p0和Druid都是比较常用的开源连接池库,可以在Java应用中使用。
4. JQuery Ajax:JQuery是一种JavaScript库,提供了许多方便的功能,如DOM操作、事件处理、动画效果等;Ajax是一种异步请求技术,可以实现无需刷新整个页面的异步数据交换。
5. Bootstrap:Bootstrap是一种基于HTML、CSS和JavaScript的开源框架,用于响应式Web设计和开发,可以快速构建优美的、兼容性良好的网站和应用。
下面是实现该需求的详细步骤:
1. 搭建Java Web开发环境,建立Web项目,并导入相关的库文件和依赖项。
2. 编写登录页面的JSP代码,包括用户名和密码的输入框、登录按钮等元素,并用JQuery Ajax发送登录请求,接收服务器返回的结果,根据结果进行相应的处理。
3. 编写过滤器类,实现对用户登录的拦截和处理,判断用户是否为小明或小红,如果是则返回“XX,禁止访问”,否则继续进行登录验证。
4. 编写Servlet类,处理登录请求,将用户名和密码与数据库中的信息进行比对,如果匹配则返回登录成功,并将用户信息存储在Session中,否则返回登录失败。
5. 编写数据库操作类,包括查询、删除、添加和修改等功能,使用c3p0或Druid连接池来管理数据库连接,提高性能和效率。
6. 编写数据操作页面的JSP代码,包括显示当前登录用户的信息、查询、删除、添加和修改等功能按钮,并用JQuery Ajax发送请求,接收服务器返回的结果,并进行相应的处理。
7. 将样式表导入到JSP页面中,使用Bootstrap来美化页面,使其具有良好的视觉效果和用户体验。
8. 调试和测试应用程序,确保其正常运行和能够满足用户需求。
总之,实现该需求需要多方面的知识和技能,需要对Java Web开发、数据库操作、前端技术等方面有一定的了解和掌握。
阅读全文