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 ...
随机推荐
- 解决Visual C++ for Linux: -L"~/projects/path_to_lib_folder" 无法设置library search path的问题
最近倒腾Linux C/C++项目.以目前的情况来说,要生成编译(build)一个Linux工程脚本,首选的工具必定是CMake.这也是我之前Linux项目的首选.不过自从VS IDE支持Linux ...
- shell练习题6
需求如下: 有日志access.log,部分内容如下: 127.0.0.1 - - [03/Jul/2018:00:00:01 +0800] "GET / HTTP/1.1" 20 ...
- python文件(概念、基本操作、常用操作、文本文件的编码方式)
文件 目标 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储 ...
- 2D 加速图形界面开发源代码亲写 想买来学习得加qq 313244484 20万当前代码,完整400万包写完
#include "StdAfx.h" #include "GUIFrame.h" #include <stdlib.h> #include < ...
- FINS/TCP_OMRON(1)
使用FINS/ TCP与欧姆龙PLC沟通 可参考下列教学 using System.Net; using System.Net.Sockets; 上面必须使用; IPAddress ipAddr = ...
- TCP学习总结(一)
在学习的过程中,相信大家都有过“学了就忘“这种经历,又特别是TCP/IP知识点密集的通信协议,所以在此总结一下自己学到的皮毛,希望对自己对大家也有所帮助. 这篇博客主要讲运输层TCP和UDP的东西,I ...
- Oil Deposit
题目描述: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. ...
- org.activiti.engine.activitiexception:version of activiti database(5.22) is more recent than the engine(5.12)
公司项目启动出现报错,百度查询结果如下:链接地址 org.activiti.engine.ActivitiException: Version of activiti database (5.15.1 ...
- php 微信调用扫一扫
类库代码: <?phpclass JSSDK { private $appId; private $appSecret; public function __construct($appId, ...
- Neural Network Programming - Deep Learning with PyTorch - YouTube
百度云链接: 链接:https://pan.baidu.com/s/1xU-CxXGCvV6o5Sksryj3fA 提取码:gawn