input
<!--
使用radio实现单选功能
通过name属性来控制单选的范围
通过checked="checked"属性控制默认选中那一项
text可以通过placeholder设置占位符,没输入内容的时候显示提示信息,输出后消失
number只能输入数字
max和min设置最大值和最小值,超出范围,可以写不可以提交
step设置数字的变化幅度
checkbox复选框,可以依次选中多个
通过name属性确定哪些是一组的
submit可以通过value属性修改按钮的文字
select和option实现下拉菜单,通过selected="seletcted"设置默认选中项
textarea多行文本输入框
每个标签都要有name属性,才能把数据提交到服务器
对于radio,checkbox,select可以通过value属性设置提交给服务器
-->
<form action="add" method="post">
<!-- post 需要手动指定 -->
<!--
服务器通过查询 web.xml 找到 url-pattern 对应的 servlet-name
根据 servlet-name 找到对应 servlet-class
调用 servlet-class 中的方法处理请求
-->
姓名:<input type="text" name="name" placeholder="请输入名字"> <br>
男<input type="radio" name="sex" value="true" checked="checked"> 女<input type="radio" value="false" name="sex"> <br>
学号:<input type="number" name="number" max="10000" min="1000" step="1"> <br>
成绩:<input type="number" name="score" max="100" min="0" step="0.5"> <br>
爱好:篮球 <input type="checkbox" value="basketball" name="enjoy">
足球 <input type="checkbox" value="football" name="enjoy">
游戏 <input type="checkbox" value="game" name="enjoy">
电影 <input type="checkbox" value="movie" name="enjoy">
音乐 <input type="checkbox" value="music" name="enjoy"> <br>
专业:<select name="type">
<option>计算机科学技术与发展</option>
<option>信息安全</option>
<option selected="selected">软件测试</option>
</select> <br>
<textarea name="text" rows="5" cols="50" placeholder="请输入个性签名"></textarea> <br>
<input type="submit" value="添加">
</form>
<!--
重定向和请求转发两者有本质的区别:
重定向表示当前请求处理完毕,发送新的请求去新的 url
请求转发表示当前请求没有处理完毕,把当前请求转发到新的 url 进行处理
重定向浏览器地址栏中的 url 会发生变化,可以访问程序外的页面
请求转发浏览器地址栏中的 url 不会发生变化,不能访问程序外的页面
重定向不会携带原来请求的参数
请求转发会携带原来请求的参数
当需要跳转到新 url 的时候,可以从是否需要携带参数考虑使用哪一个
-->
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 重定向可以跳转到任意一个地方
// 重定向也可以跳转到程序外的页面
// response.sendRedirect("https://www.baidu.com");
// 重定向也可以跳转到另外一个 Servlet
response.sendRedirect("#");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 请求转发可以访问本程序中的新页面
// request.getRequestDispatcher("home.jsp").forward(request, response);
// 请求转发不能访问程序外的页面
// request.getRequestDispatcher("https://www.baidu.com").forward(request, response);
// 请求转发可以访问本程序中的 Servlet,可以携带原请求的参数
// 也可以使用 setAttribute(key, value) 追加新的参数
// 在当前页面通过 key-value 的形式存储数据,在下一个通过 key 获取 value
// value 可以是任意一个 Object 对象
request.setAttribute("username", "zhangsan");
// 可以追加任意个参数,同名的话后写的覆盖先写的
request.getRequestDispatcher("#").forward(request, response);
}