JSP中有9 大内置对象(不能需要new 就可以使用)
servlet 常用的三个对象:是由tomcat容器创建的ServletRequest , ServletResponse,ServletContext
out 输出 (向浏览器去写数据)
request 请求对象
response 响应的 对象 (比较常用)
session 会话
application 全局对象(servletContext)
page 当前页面的对象
pageContext 上下文对象
config 配置信息对象
exception 异常对象
出现九个内置对象 是因为java带 html 混合在一起,需要做一些处理,所有产生这些内置对象,现在在开发里很少使用
四大内置对象的作用域 pageContext, request,session,application
公有两个方法:
setAttribute()设置值
getAttribute() 获取其值
pageContext 作用域:只局限于在当前界面(其它界面获取不到值)
request 作用域: 在服务器内部的请求中的数据都可以获取(只要没有重新请求)
session 随着窗口的打开而开始,窗口的关闭而结束 只要是在整个回话下都可以获取到
application 生命周期是随和服务器的开始而开始, 服务器的结束而结束 只要服务器开启就能够获取到取值
作用域的范围是: pageContext< request<session application
另一种获取方式是:requestScope 获取指定作用域下的值
如果出现四个作用域下都存的同名的键,那么获取的方式是就近原则,从最小开始
jsp 中动态标签库
<%--动态包含某个界面--%>
<jsp:include page="welcome.jsp"></jsp:include> 包含
<jsp:forward page="welcome.jsp"></jsp:forward> 转发的标签库
时间的插件: My97 DatePicker
${pageContext.request.contextPath} 表示获取的项目web目录
<%--对时间进行格式化的标签库--%
<%@taglib prefix="fm" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fm:formatDate pattern="yyyy" value="${register.createTime}"> </fm:formatDate>
pattern="yyyy" 表示格式化时间的格式 value是需要格式化时间的值
使用的步骤:1.下载其文件
2.新建js 把 下载的文件 与jquery 放入
3.在界面 引入js文件 首先必须引入jquery.js文件
4. 在需要引入的地方 onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
上传: ServletFileUpload 上传文件的核心的类
上传的基本步骤
1.导入第三方的jar包 加入依赖 上传的注意点:method="post" enctype="multipart/form-data" 必须是这两点
multipart/form-data:指定传输数据为二进制数据,例如图片、mp3、文件
2.首页需要创建一个上传文件目录(文件夹)
3.检验提交的格式是否合法 ServletFileUpload.isMultipartContent(req); 为true 表示合法
4.实例化这个上传文件的核心类 ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
5.得到所有form 表单的fileItme 集合
6 得到每一个fileItem 然后判断每一个FileItem的类型 fileItem.isFormField() 如果是true 表示是文本类型,也就是不是文件
7.获取文件的名称,构建一个文件对象
8.构建一个完整的路径,写入到服务器 fileItem.write(f);
注意点: 获取其文本的值: fileItem.getString("UTF-8") 数据库保存是保存的图片的路径(一般相对路径或者是文件都可以)
@WebServlet(name = "uploadServlet",urlPatterns = "/uploadServlet")
public class UploadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//得到web-inf下的路径
String path=req.getServletContext().getRealPath("/WEB-INF/upload");
//构建一个File对象
File file=new File(path);
//判断这个文件是否存在
if(!file.exists()){
//创建这个文件
file.mkdirs();
}
//ServletFileUpload上传文件的核心类
//检验提交的格式是否合法(true为合法)
boolean flag=ServletFileUpload.isMultipartContent(req);
if(flag){
//实例化工厂类
FileItemFactory factory=new DiskFileItemFactory();
//实例化这个核心对象
ServletFileUpload servletFileUpload=new ServletFileUpload(factory);
List<FileItem> fileItemList=null;
try {
fileItemList=servletFileUpload.parseRequest(req);
} catch (FileUploadException e) {
e.printStackTrace();
}
//把集合转化为迭代器
Iterator<FileItem>fileItemIterator=fileItemList.iterator();
while (fileItemIterator.hasNext()){
//获取具体的每一个元素
FileItem fileItem=fileItemIterator.next();
//判断是否为文本类型
if(fileItem.isFormField()){
}else {
//获取文件的名称
String fileName=fileItem.getName();
File f=new File(file,fileName);
//把文件写入服务器里
try {
fileItem.write(f);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}