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 ...
随机推荐
- [硬件黑客]钉钉智能指纹考勤机M1硬件漏洞挖掘(不定期更新)
mailto:wangkai0351@gmail.com 钉钉智能指纹考勤机M1s,支持指纹.WIFI.蓝牙.GPS四种考勤方式,并且可实时查看考勤数据,自动生成考勤报表,告别人工核算,数据云端存储不 ...
- Problem A: STL——灵活的线性表
Description 数组和链表是我们熟知的两种线性结构,但是它们不够灵活(不能同时实现直接插入.删除和访问操作),给你若干种操作,你能通过一种灵活的容器,实现它们的功能吗? 操作1:Build a ...
- Spine用于Timeline(NullReferenceException: Object reference not set to an instance of an object pine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI ())
报错信息:Spine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI () (at Assets/Extention/Spine/E ...
- docker info 警告"WARNING: No swap limit support"
vim/etc/default/grub 找到 GRUB_CMDLINE_LINUX="" 在双引号里面输入cgroup_enable=memory swapaccount=1 然 ...
- Spring Boot 异步运用
使用@Async标签 导入包 org.springframework.scheduling.annotation.Async 并配置并发线程池asyncTaskConfig 实现AsyncConfig ...
- json序列化NULL
在项目中遇到一问题,json序列化需要将null传递给前端,但之前项目中使用的都是fastjson的JSONObject.toJSONString(vo),这样会过滤掉为NULL的属性. 解决办法: ...
- bilibili答题器
2017-06-12,靠着这个测试版我得以95分的成绩L0级晋级会员L2级(PS 测试两次分别获得 攻略组和 学霸组) 计划完善目标: 界面UI更新布局,现在这个布局真是** 答案和问题分开,增加语音 ...
- 抛开visual studio,纯手工创建asp.net mvc遇到的问题
脱离Visual Studio,只用文本编辑器..NET Framework.IIS Express创建ASP.NET MVC应用时,需要精简~/View目录下web.config文件内容,之前创建的 ...
- iOS开发之UIGestureRecognizer
一:首先查看一下关于UIGestureRecognizer的定义 //当前手势状态 typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { //尚 ...
- pycharm(pythoon3)_django2.0_xadmin创建测试用例后台管理系统
1.测试用例的app名字:Testcase 2.Testcase文件夹下各个文件的代码: 2.1. __init__.py: default_app_config = "TestCase.a ...