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 ...
随机推荐
- LINQ Expresstion Tree 表达式树
Expression trees represent code in a tree-like data structure, where each node is an expression, for ...
- 三张图搞懂JavaScript的原型对象与原型链
对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张 ...
- mongoDB-Cannot change the size of a document in a capped collection:
简单记录一下: 造成该问题的原因是集合被设置成了 固定集合 .固定集合的数据不能被修改.只能查找-删除-再插入
- 以方法调用的原理解释Ruby中“puts ‘Hello‘”
这里尽管缺少消息发送所需要的点(.)以及该消息的显示接收者,却依然发送了消息puts并传递了参数“Hello”给一个对象:默认对象self.在程序运行期间,虽然作为self的对象通过特定规则发生改变, ...
- jsp视频如何播放
网站开发小白们对如何插入视频有较大的困扰,一段时间不知道从何下手,想在数据库里面直接导入,但没能成功,后又尝试直接在myeclipse里面直接放入视频. 对于不同的播放器,视频的格式也有要求,建议使用 ...
- 设置ul的指定li 样式
设置ul的最后li 的样式 .custom-consumerIndex .card-content .list-block ul li:last-child .item-inner { border- ...
- 利用postman 实现Get和Post测试
通过之前对金字塔结构的学习,大概了解到了金字塔模型想告诉我们的几个道理: 1.越底层,越稳定. 金字塔主要观点认为单元测试的稳定性高,需要多投入. 2.越底层,越高效. 程序的问题,最终还得落在具体的 ...
- ACE如何生成VS工程之mwc.pl用法
1.先写个mwc文件,文件名为hello.mwc workspace { hello.mpc} 2.写mpc文件,文件名为hello.mpc project(hello):aceexe, acexml ...
- 18-09-15 潘一刘老师 讲课replace 控件输入函数检测的包
控件输入 指的是 一般金融机构 输入密码时候需要文本 键盘不能输入时候 用到的
- 18-09-13 机器人和服务器之间的ip配置和脚本的重启
问题9 服务器安装完毕后 怎么配置机器人客户端的配置ip