各個部分的作用
jsp部分
form action="..."
:表單標簽,供用戶提交數據。內部的submit
點擊之后相當于是點action
的URL
input type="radio"
:輸入類型為單選框。把name設置為一樣的,這樣效果上就是單選,也可以自己修改,讓它實現多選、互斥選等功能。如果三個單選的name都是queryType,我們在servlet中寫起來會方便很多,通過request.getParameter(name)
得到用戶是選了哪種查詢方式。再通過
request.getParameter(request.getParameter(name))
得到用戶輸入的內容,動態代碼。
label
:for誰,點擊之后,就相當于是鼠標點誰。for單選框,點完,就會選中。for文本框,點完,光標就會在文本框閃。
input type="text"
:文本框
input type="submit" value="查詢"
:提交按鈕
Servlet在這里常出的錯
pstmt.setString(1,content)
:這會自動給content加上單引號,再加入到pstmt的字符串中。
代碼
Jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>query</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/query"><input type="radio" id="name" name="queryType" value="name" checked><label for="name">按姓名查詢</label><label for="studentName">學生姓名:</label><input type="text" id="studentName" name="name"><br><input type="radio" id="student_id" name="queryType" value="id"><label for="student_id">按學號查詢</label><label for="studentId">學生學號:</label><input type="text" id="studentId" name="id"><br><br><input type="radio" id="student_fl" name="queryType" value="fl"><label for="student_fl">顯示有不及格學科的學生信息</label><br><input type="submit" value="查詢"><a href="index.jsp">返回主頁</a></form>
</body>
</html>
Servlet
// 獲取查詢類型
String queryType = request.getParameter("queryType");
//
String content = request.getParameter(queryType);
···
// 查詢語句
String sql = "select * from Marks where "+queryType+"=?";
pstmt= conn.prepareStatement(sql);
pstmt.setString(1,content);
效果圖
選取按學號查的時候,會自動取消按姓名查那里的黑點。