servlet_1
HttpServlet超类在java构建路径中没有找到
https://jingyan.baidu.com/article/6c67b1d69a37a02787bb1ee2.html ===============================================
servlet处理http请求1
客户端发送http请求的方式
HttpServletRequest接口概述
获取http请求参数的方法 客户端发送http请求的方式
地址栏直接输入URL
超链接的href指定的URL
表单标签form的action指定的URL
javascript的location.href指定URL HttpServletRequest接口
继承自ServletRequest接口,处理http请求
封装了http请求的请求url,请求参数,请求报文等信息
由容器实现,开发中直接从doMethod的参数中获取其实例 获取http请求参数的方法
从以do开头的方法中直接获取。 servlet处理http请求2 获取表单控件中的参数 处理console乱码,临时地加入下面一行
request.setCharacterEncoding("utf-8");
空字符串 用户名与密码未填写时
null 单选框未选中时
空指针 复选框一个都不选时
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="Servlet1?name=tom&name=jack&gender=male">请求1</a>
<form action="Servlet2" method="post">
<input type="text" name="username"/><br />
<input type="password" name="userpwd"/><br />
<input type="radio" name="gender" value="f" />女
<input type="radio" name="gender" value="m" />男<br />
<input type="checkbox" name="favors" value="football" />足球
<input type="checkbox" name="favors" value="music" />音乐
<input type="checkbox" name="favors" value="swim" />游泳<br />
<select name="cities">
<option value="1">内蒙</option>
<option value="2">河南</option>
<option value="3">河北</option>
</select><br />
<textarea rows="3" cols="3" name="description"></textarea>
<br /> <input type="submit" value="提交" />
</form>
</body>
</html>
package com.fgy; import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @WebServlet("/Servlet2")
public class Servlet2 extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("============================");
//临时地解决一下控制台中文乱码问题
request.setCharacterEncoding("utf-8");
String userName=request.getParameter("username");
System.out.println(userName);
System.out.println(request.getParameter("userpwd"));
System.out.println(request.getParameter("gender"));
String[] favors=request.getParameterValues("favors");
if (favors != null) {
for (String s : favors) {
System.out.println(s);
}
}
System.out.println(request.getParameter("cities"));
System.out.println(request.getParameter("description")); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} }
servlet处理文件上传-1
文件上传方式概述
客户端编程要点
servlet内置的文件上传配置
使用part处理文件上传 part接口及获取其实例
在multipart请求中,每一个表单控件,都会被转换成一个part
使用HttpServletRequest获取Part:
getPart:返回指定名称的part,一个文件
getParts:返回请求中所有的part,多个文件
part接口的方法 part接口方法2
write
delete
getInputStream
servlet处理文件上传-2
文件上传的相关配置
服务器端处理文件上传要点 @MultipartConfig注解及属性
maxRequestSize
maxFileSize
location
fileSizeThreshold 如果location没有指定的话,就在下面这个路径,
全局属性的值javax.servlet.context.tmpdir
apache-tomcat-8.5.15\work\Catalina\localhost\project3 如果在web.xml中配置,就要用到multipart的子标签,就是上面几个属性
前端展示页面 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Upload2" method="post" enctype="multipart/form-data">
<input type="file" name="file1"><br>
<input type="file" name="file2"><br>
<input type="text" name="name"><br>
<input type="submit" value="上传">
</form>
</body>
</html> ==================================
后端处理逻辑
package com.fgy; import java.io.IOException;
import java.util.Collection; import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part; /**
* Servlet implementation class UploadServlet
*/
@WebServlet("/Upload2")
@MultipartConfig(maxRequestSize=1024*1024*10,maxFileSize=1024*1024*9,location="d:\\")
public class UploadServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("=========================");
System.out.println(request.getParameter("name"));
Collection<Part> parts=request.getParts();
for (Part part : parts) {
if (part.getContentType() != null) {
String fileName=part.getSubmittedFileName();
if (!fileName.equals("")) { part.write(fileName);
} } }
}
}
servlet_1的更多相关文章
- javaweb-url /
/一直搞得不清不楚 有时候不用加有时加了也行,有时必须加 转发自XXX论坛 推荐使用 <% String path = request.getContextPath(); String base ...
- mvc-servlet---servletContext与servletConfig2
在编写servlet过程中,需要用到 ServletConfig.ServletContext对象,对这两种对象的介绍如下: ServletContext对象:servlet容器在启动时会加载web应 ...
- Simple Web Example
eclipse3.7 运行一个简单的servlet,Target Platfrom 必要的jar为 0 ACTIVE org.eclipse.osgi_3.7.2.v20120110-141 ...
- C#和JavaScript的区别
Strong and Loose Typing: 强弱比较 // C# var customer = new Customer(); //var is compiler inferred //Java ...
- javaWeb学习总结(3)- Servlet基础
Servlet的应用 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web浏览器或其他http客户程序发出请求. 与http服务器上的数据库或应用程 ...
- javaWeb学习总结(6)- 会话之cookie技术
什么是会话? 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话. 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为 ...
- javaWeb学习总结(5)- HttpServletRequest应用
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的相关方法,即可以获得客户的这些信息 ...
- AndroidStudio3.0无法打开Android Device Monitor的解决办法(An error has occurred on Android Device Monitor)
---恢复内容开始--- 打开monitor时出现 An error has occurred. See the log file... ------------------------------- ...
- SpringBoot拦截器中Bean无法注入(转)
问题 这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于其他bean在service,controller层注入一点问题也没有,开始根本没意识到Be ...
随机推荐
- (2018 Multi-University Training Contest 2)Problem G - Naive Operations
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6315 题目大意:告诉你a,b两个数组,a数组初始化为0,b数组告诉你长度和具体值,接下来有q次操作,a ...
- dict的几个要点
1. 采用key,value键-值对进行存储 2. key必须是不可变对象 3. key值不能重复 添加元素: aDict = {'1':'aaa','b':'bbb','3':'ccc'} aDic ...
- jQuery dataTables 列不对齐的原因
如果把 jQuery dataTables 用在初始化时为隐藏的区域中,会发现表头和内容的列是不对齐的. 解决方案: 如果是折叠的,可以加上: $('#myCollapsible').on('show ...
- MVC简单增删改
/// <summary> /// /显示分页 /// </summary> /// <param name="model"></para ...
- tomcat管理监控工具:probe(可代替Tomcat Manager)
版本信息:tomcat8减压版.probe 3.0.0 修改tomcat用户配置,在conf\tomcat-users.xml加入一下配置: <role rolename="admin ...
- vue-router 重难点总结笔记
1,使用动态路由配置的(如:‘:id’),可以在this.$router.params.id获得. 官网例子: 模式 匹配路径 $route.params /user/:username /user/ ...
- db.properties是干什么用的
连接池配置文件db.properties是java中采用数据库连接池技术完成应用对数据库的操作的配置文件信息的文件.具体配置项目如下:drivers=com.microsoft.sqlserver.j ...
- python-2018.03.03
本周用python实现了 1.通过svn模块检出远程代码到本地(ps:修改了windows svn的一个编码模块的小bug),并通过调用MSbuild 编译.发布并打包发布后的代码 (注:以上需要安装 ...
- SMS PDU编码数据串格式分析
PDU协议数据单元详细介绍 PDU 相当于一个数据包,它由构成消息(SMS)的信息组成.作为一种数据单元,它必须包含源/目的地址.保护(有效)时间.数据格式.协议类型和正文,正文长度可达140字节,它 ...
- docker 容器跑一个应用
虽然是个前端,但是公司比较推崇docker,感觉挺神奇,就也学了一些,再此做个笔记,以供日后回想. 我的想法是在一个centos环境中运行一个nginx服务.docker的安装就不说了,网上已经有好多 ...