Servlet——提交表单信息,Servlet之间的跳转
HTML表单标签:<form></form>
属性:
actoion: 提交到的地址,默认为当前页面
method: 表单提交方式 有get和post两种方式,默认为get
enctype: 文件上传时需要设置为multipart/form-data
Get:
以get方式提交数据时,浏览器会把表单内容组织成一个查询字符串,变量间以&连接,然后以servlrt路径加"?"加查询字符串的形式获取服务器内容
如:向某个Servlet提交两个参数a,b,组织后的URL为http://servltname/ServlrtTest?a=aValue&b=bValue
然后Servlet中用HttpServletRequest对象通过方法getParameter("a")获取到aValue,b同理
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String flag = request.getParameter("flag"); //从HttpServletRequest对象中获取传递过来的值,queryAll或者delete
BookService bs = new BookService();
if("queryAll".equals(flag)) {
List<Book> books = bs.queryAll();
request.setAttribute("books", books);
request.getRequestDispatcher("LibraryJsp/borrow.jsp").forward(request, response);
}else if("delete".equals(flag)) {
String id = request.getParameter("Id");
Book book = bs.queryOne(id);
bs.deleteBook(book);
List<Book> books = bs.queryAll();
request.setAttribute("books", books);
request.getRequestDispatcher("LibraryJsp/borrow.jsp").forward(request, response);
}
}
Post:
以post方式提交时,表单内容不会显示在浏览器中。
在doPost()中用getParameter()获取表单信息。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8"); String flag = request.getParameter("flag");
BookService bs = new BookService();
if("queryByItem".equals(flag)) {
String item = request.getParameter("item");
String value = request.getParameter("value");
List<Book> books = bs.queryByItem(item, value);
request.setAttribute("books", books);
request.getRequestDispatcher("LibraryJsp/borrow.jsp").forward(request, response);
}
}
Servlet之间的跳转:
分为转向Forward、重定向Redirect、刷新Refresh
转向:可以跳转到另一个Servlet,JSP,甚至WEB-INF下的另一个文件
重定向:通过服务器端返回状态码来实现,客户端请求了两次服务器。
301,302都表示重定向,301表示永久性重定向,302表示临时性重定向
刷新:可以实现一段时间后跳转到另一界面,也可以刷新本页面。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8"); String id = request.getParameter("username");
String password = request.getParameter("password");
LoginService ls = new LoginService();
User user = ls.Login(id, password);
if(!user.getUserId().isEmpty()) {
//登录成功后,请求转向
request.setAttribute("name", user.getUserId());
request.getRequestDispatcher("LibraryJsp/index.jsp").forward(request, response);
}else {
//登陆失败,重定向
response.sendRedirect("LibraryJsp/Login.jsp");
}
}
Servlet——提交表单信息,Servlet之间的跳转的更多相关文章
- Web jsp开发学习——Servlet提交表单时用法
实现提交表单以后判断输入的信息是否符合条件 若符合条件 先新建servlet Sevlet的两种声明方式,二选一即可 再到web.xml里注册 register.jsp就是表单的界 ...
- 【IDEA】HTML通过servlet3.0注解名提交表单到servlet类找不到页面的问题
IDEA一时爽,摸不着头的BUG火葬场 这个问题困扰我整整一天一夜,先是代码检查路径设置找不出问题,后面换tomcat版不行,抱着侥幸心理换IDEA版本意料之中还是没解决问题. 都快想秃了最后终于完美 ...
- html提交表单到Servlet
源码地址 https://github.com/YouXianMing/Java-Web-Study/tree/master/Servlet-Form 演示效果(注意post与get提交方式浏览器地址 ...
- name属性作用+使用$.post()取代name属性在提交表单信息中的作用
name的用途 1)主要是用于获取提交表单的某表单域信息, 作为可与服务器交互数据的HTML元素的服务器端的标示,比如input.select.textarea.框架元素(iframe.frame. ...
- jsp文件放在webcontent子目录下提交表单给servlet报404错误解决办法
新版的web项目已经不需要配置web.xml了,并且eclipse neon版本里面新建web项目时候,默认不会生成web.xml文件.我们也不需要手动添加该文件,因为内部为我们提供了最新的处理方式, ...
- Form提交表单后页面刷新不跳转的实现
<form action="" id="" method="post" target="nm_iframe"> ...
- jquery实现ajax提交表单信息
最近在思考优化项目,想自己扩展一个jquery自动获取表单中的数据进行ajax提交.本人没有完整性学习jquery,基本上是现学现找,有点困难. 主要是扩展和拼接json转对象 很简单,附上代码: ; ...
- Servlet与JSP内置对象的对应关系、Servlet获取表单、Servlet路径跳转
项目的根目录指的是webroot: 服务器内部跳转: 或者使用../:“..”代表回到上一级目录
- Yii表单模型使用及以数组形式提交表单数据
按Yii文档里的描述,Yii在处理表单的一般过程是: 创建表单对应的模型类,设置字段验证规则 创建表单提交对应的action,处理提交的内容 在视图中创建表单form 在刚刚的一个小项目里,想使用aj ...
随机推荐
- 安卓开发环境配置之Windows+ADT+eclipse
安卓环境搭建之Windows+ADT+eclipse 要点: 1.安装JDK 2.安装Android SDK 3.安装eclipse 4.安装ADT 5.安装调试环境 正文: 1.安装JDK 1.1准 ...
- 【Redis】Redis学习(六) Redis 基本运维
Redis的单机搭建,主从搭建,Sentinal搭建,以及Redis集群搭建的步骤参照前面的文章.现在来说一下Redis的基本运维,毕竟如果一切正常是最好的,但是当出现问题不能使用的时候,准确定位问题 ...
- [cb]NGUI事件及复杂UI管理
事件管理 看了有些文章关于NGUI的事件管理,许多人的做法的是封装一个事件处理层,避免在每个UI控件上都绑定事件处理脚本.本文说说我们项目中的UI事件管理吧. UIEventListener 我们项目 ...
- ETL技巧应用(高级应用介绍:准备区运用、 时间戳的运用、日志表的运用、使用调度)
1.1 准备区运用 a.在构建数据仓库时,数据源位于一服务器上,数据仓库在另一服务器端,数据源Server端访问频繁,并且数据量大,需要不断更新, b.建立准备区数据库: >将数据抽取到准 ...
- 【爬坑】运行 Hadoop 的 MapReduce 示例卡住了
1. 问题说明 在以伪分布式模式运行 Hadoop 自带的 MapReduce 示例,卡在了 Running job ,如图所示 2. 解决过程 查看日志没得到有用的信息 再次确认配置信息没有错误信息 ...
- 写Ansible playbook添加zabbix被监控的对象
本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...
- MySQL面试题36道
MySQL数据库是在免费的数据库中最受欢迎的一款,尤其是在一些小型项目以及项目资金有限的情况下,选择MySQL来作为数据存储的工具,那些不差钱并且数据吞吐量非常大的互联网公司一般都是会用付费的Orac ...
- css常见知识点
1.内核区分 希望某一个浏览器能一统江湖 -ms-transform:rotate(7deg); //-ms代表ie内核识别码 -moz-transform:rotate(7deg); //-moz代 ...
- 清理 Xcode 10
1,清理 ~/Library/Developer/CoreSimulator/Devices说明:该目录存放当前的所有模拟器,每个标识符代表一台机器,清理掉避免存在旧版本的模拟器缓存 执行: 关闭模拟 ...
- plsqldev、oracle插入中文乱码问题解决
最近在开发项目时用到Oracle数据库,需要手动插入一些数据,但插入中文的sql值时出现了乱码. 中文乱码就是编码不统一所导致的了,解决办法只需要把编码统一下即可解决了. 此种情况最大的可能就是客户端 ...