7:Servlet表单-Java Web

简介: 7:Servlet表单-Java Web

7.1 Servlet响应

通过response对象对用户进行响应

• 创建输出流对象

• PrintWriter out = response.getWriter();

• 使用out对象响应用户

• out.println(“这是通过Servlet响应用户的信息”)


7.2 Servlet获取客户端参数

通过request对象获取请求信息

l String getParameter(String name)

l String[ ] getParamterValues(String name)


• 客户浏览器通过使用以下方法把请求参数传给servlet:

GET(数据量少,安全性要求不高,速度快)

• 以查询字符串的方式附在统一资源地址(URL)后面• 查询串可在客户浏览器上显示

• 默认表单请求方式

• POST(数据量大,安全性要求高)

• 通过单独的套接字连接发送包数据

• 完整的事务对客户是不可见的

• 与GET方法比较起来较慢


doXxx方法

HttpServlet类为每一种HTTP请求方式都定义了一个对应的doXxx方法,例如,与GET请求方式对应的是doGet方法,与POST请求方式对应的是doPost方法。


7.3 Servlet接受表单数据

程序要点:

1、servlet如何获得客户端参数

request.getParameter(参数名);

2、如何解决服务器返回页面中文乱码问题

response.setContentType("text/html;charset=GBK");

3、了解form表单设置action属性时路径问题,相对路径是相对于当前浏览器URL而言的路径。


/表示当前web服务器中web应用程序发布的根目录,对tomcat来说是webapps ,是绝对路径


./当前目录 ,是相对路径


…/表示上一级目录, 是相对路径


注意如果HTML文件放在其他文件夹中时,如何设计action中的路径,


方法一 相对路径: …/ 或者 绝对路径: /上下文根目录 建议使用后者


方法二 也可以考虑修改web.xml中servlet的访问URL,


在web.xml中设置/inputservlet 此/表示当前应用程序根目录。


以后的开发中我们尽量使用绝对路径访问,写绝对路径肯定没有问题,但写相对路径却能会有问题。在后面的学习中会进一步介绍。


4、了解form表单的两种提交方式,get和post方法的区别。


默认是get方式


(1) GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是unicode,即是说所有的非ASCII字符都要编码之后再传输。


POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。

因此,GET请求的数据会暴露在地址栏中,而POST请求则不会,相对而言GET方式的请求会更快。


(2) 传输数据的大小


在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求 时,传输数据会受到URL长度的限制。


对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制。GET方式传递数据量少,POST方式相对而言传递的数据量大。


(3) 安全性


POST的安全性比GET的高。这里的安全是指真正的安全。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露在URL上,因为登录页面有可能被浏览器缓存 以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击。


对于数据量少,安全要求不高的请求可以用GET,对于数据量大,安全性要求高的请求用POST方式。


5、了解如何在地址栏里面用get方式传递参数


参数格式设置: URL?参数名1=值&参数名2=值&…


6、让servlet 即能处理get方式请求,又能处理post方式请求


重写父类的doGet()方法,并在doPost()方法中调用doGet()方法


input .html表单页面:

<html>
<head><title>Login</title></head>
<body>
    <form action="InputServlet" method="post">
        请输入内容:<input type="text" name="info">
        <input type="submit" value="提交">
    </form>
</body>
</html>

InputServlet.java 获取参数的Servlet程序

package com.org;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class InputServlet extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletResponse resp)
              throws ServletException,IOException{
        resp.setContentType("text/html;charset=UTF-8");//设置服务器给客户端响应的内容类型,指定编码方式解决返回给客户端中文乱码的问题
        req.setCharacterEncoding("UTF-8");//解决Post请求的中文乱码问题
        String info = req.getParameter("info") ;// 假设参数名称为info
        PrintWriter out = resp.getWriter() ;
        out.println("<html>") ;
        out.println("<head><title>表单输入</title></head>") ;
        out.println("<body>") ;
        out.println("<h1>欢迎你" + info + "</h1>") ;
        out.println("</body>") ;
        out.println("</html>") ;
        out.close() ;
    }
    public void doPost(HttpServletRequest req,HttpServletResponse resp)
              throws ServletException,IOException{
        this.doGet(req,resp) ;
    }
}

web2.0中的配置信息

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="https://java.sun.com/xml/ns/javaee"
   xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="https://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   version="2.5">
  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
    <servlet>
        <servlet-name>input</servlet-name>
        <servlet-class>com.org.InputServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>input</servlet-name>
        <url-pattern>/InputServlet</url-pattern>
    </servlet-mapping>
</web-app>
目录
相关文章
|
5月前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
5月前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】02 表单-input标签-单选框-多选框
本文介绍了HTML中`&lt;input&gt;`标签的基本使用方法及其应用场景,如登录、注册页面和搜索区域。通过设置`type`属性,可以实现文本框、密码框、单选框、多选框及文件上传等功能。此外,还详细说明了占位文本的使用、单选框的常用属性及多选框的默认选中状态,并提供了示例代码与效果展示。
148 7
|
6月前
|
前端开发 开发者 安全
JSF表单处理大揭秘:数据绑定与事件处理,如何让Web应用更加智能?
【8月更文挑战第31天】在现代Web应用开发中,JSF(JavaServer Faces)框架因强大的表单处理能力而广泛应用。其数据绑定机制可实现表单控件与后端模型的双向传输,降低前后端耦合度,提高代码维护性和类型安全性。事件处理机制则支持丰富的内置与自定义事件,进一步增强应用灵活性。本文通过示例代码展示这些特性,帮助开发者更好地利用JSF构建高效、灵活的Web应用。然而,JSF也存在组件库较小和学习成本较高等局限,需根据具体需求权衡使用。
65 0
|
6月前
|
开发者 Java Spring
JSF 牵手社交登录,如魔法风暴席卷 Web 世界,开启震撼便捷登录之旅!
【8月更文挑战第31天】在互联网时代,便捷登录成为用户的核心需求。社交登录凭借其便捷性、安全性和社交化的特点,在各类Web应用中广泛应用。JavaServer Faces(JSF),作为一款流行的Java Web框架,能够轻松集成社交登录功能,显著提升用户体验。本文详细介绍社交登录的优势,并提供两种JSF集成社交登录的常见方法:一是利用Spring Social等第三方库简化开发;二是自行实现社交登录流程。开发者可根据项目需求选择适合的方案。
65 0
|
6月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
69 0
|
6月前
|
开发者 数据管理 Java
表单革命:Vaadin Forms如何重塑你的Web表单体验,打造用户互动新纪元
【8月更文挑战第31天】在现代Web开发中,表单是用户与应用交互的关键。Vaadin框架提供了强大的表单处理工具,简化了高效且用户友好表单的创建。本文深入探讨Vaadin Forms的工作原理,包括数据绑定、验证和事件处理等功能,并通过详细代码示例,帮助开发者掌握其使用方法,从而构建出满足各种需求的表单。
61 0
|
6月前
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
57 0
|
6月前
|
数据采集 前端开发 开发者
Angular表单控件详解:掌握模板驱动与响应式表单的精髓,让Web应用中的数据采集工作变得高效又简单,彻底告别繁琐的表单处理流程
【8月更文挑战第31天】表单是 Web 应用的关键组件,用于用户登录、注册及信息提交。Angular 作为成熟前端框架,提供了强大的表单处理功能,包括模板驱动与响应式表单。本文通过技术博客形式,详细介绍这两种表单控件,并提供示例代码,展示如何利用它们简化表单处理流程,提高开发效率。首先介绍简单的模板驱动表单,然后讲解基于 RxJS 的响应式表单,适用于复杂逻辑。通过本文,你将学会如何高效地使用 Angular 表单控件,提升应用的用户体验。
70 0
|
6月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
142 0
|
2月前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南

热门文章

最新文章

  • 1
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    23
  • 2
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    19
  • 3
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    53
  • 4
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    295
  • 5
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 6
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    38
  • 7
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 8
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    20
  • 9
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    53
  • 10
    springSecurity学习之springSecurity过滤web请求
    59