【JavaWeb笔记】单选框,结合Servlet

各个部分的作用

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

html 复制代码
<%@ 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

java 复制代码
// 获取查询类型
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);
相关推荐
Xudde.1 分钟前
班级作业笔记报告0x09
笔记·学习·安全·web安全·php
鸽鸽程序猿8 分钟前
【JavaEE】【SpringAI】Tool Calling(工具调用)
java·java-ee
ZzYH2212 分钟前
文献阅读 260407-Leveraging edge artificial intelligence for sustainable agriculture
笔记
sinat_2554878130 分钟前
泛型:类·学习笔记
java·jvm·笔记·学习
被考核重击32 分钟前
计算机网络核心知识点笔记
网络·笔记·计算机网络
鱼鳞_36 分钟前
Java学习笔记_Day21(Set)
java·笔记·学习
迷路爸爸18042 分钟前
Docker 入门学习笔记 02:基础命令、前后台运行,以及 attach、logs、exec 的区别
笔记·学习·docker
我命由我123451 小时前
Vue3 开发中,字符串中的 <br\> 标签被直接当作文本显示出来了,而不是被解析为 HTML 换行标签
开发语言·前端·javascript·vue.js·html·ecmascript·html5
迷路爸爸1801 小时前
Docker 入门学习笔记 01:它到底解决了什么问题,镜像和容器又是什么
服务器·笔记·学习·docker·容器
talen_hx2961 小时前
《零基础入门Spark》学习笔记 Day 12
笔记·学习·spark