单体数据
new NewsDao().queryAll();
多个表的数据
1.多表查询语句
2.从dao里面取出连个表的数据
拿数据:仓库(数据库)管理员dao
针对数据进行加工:厨师 biz
给别人做显示:服务员 jsp
用户在页面上发起一个请求(jsp上点击了一个按钮)
【西红柿炒蛋】
请求给到biz 【没有西红柿,没有蛋】
【告诉dao,我需要西瓜红(数据),鸡蛋(数据)】
1.西红柿dao包->西红柿
2.鸡蛋dao包->鸡蛋
biz处理数据:将西红柿+鸡蛋->西红柿炒鸡蛋
jsp页面:显示功能【上菜】
还记得新闻系统吗?增加界面的文本框是没有格式的,那么今天我们就来完善一下吧
先将上次(上篇博客有下载方法)下载的副文本添加到webapp中
将两个jar包也添加到WEB-INF中的lib中
我的副文本叫ckeditor哦
然后将副文本导入增加新闻界面
找到文本框设置一个id
对文件进行一个加载
在界面中添加一个文件选择器
新闻封面
注意:表单进行文件上传需要注意两个点,第一个表单的提交类型一定要为post,第二个必须为多段式表单(enctype="multipart/form-data")
之前写的这些都是针对普通表单的,所以我们要进行更改
//request.setCharacterEncoding("utf-8");
//接收新闻的数据
/**
String title=request.getParameter("title");
String author=request.getParameter("author");
String publisher=request.getParameter("publisher");
String topic=request.getParameter("topic");
String content=request.getParameter("content");
**/
接收文件
拿到磁盘工厂
// 为基于磁盘的文件项创建工厂
// 接收到你的图片,将图片存到电脑磁盘上
DiskFileItemFactory factory = new DiskFileItemFactory();
创建一个新的文件上传处理程序
ServletFileUpload upload = new ServletFileUpload(factory);
让处理程序去解析请求中的数据(在List中有普通的数据,文件数据)
List items = upload.parseRequest(request);
遍历表单数据(需要进行判断是否为普通数据)
//遍历表单数据
for (FileItem item : items) {
// item有可能是文件,普通数据
if (item.isFormField()) {//是不是普通数据
String name = item.getFieldName();//表单中的name属性
String value = item.getString("utf-8");//对应的值
//需要进行判断取值
if(name.equals("title")){
title=value;
}
if(name.equals("content")){
content=value;
}
if(name.equals("author")){
author=value;
}
if(name.equals("publisher")){
publisher=value;
}
if(name.equals("topic")){
topic=value;
}
} else {//不是普通数据【是文件】
//myFile
String oldName=item.getName();//文件名字
//生成一个新的名字: 不重复
cover += UUID.randomUUID().toString().replace("-", "");
//生成动态的后缀名
// a.png -> .png
// f.jpg -> .jpg
// 2022040.13.5221.mp4
// [2022040,13,5221,mp4]
String[] strings = oldName.split("\\.");
// 随机名字+动态后缀名
cover+="."+strings[strings.length-1];
//保存到本地
item.write(new File("D:\\A_JavaWeb\\icons"+cover));
}
}
把图片进行映射
映射是什么?
双击服务
点击Modules
再
进行路径和名字的添加(名字自己取)
完成后会出现这样一行
怎么映射?
1.在阅读界面添加一个显示图片的操作
定义值并赋值
//定义需要的值
String title="";
int count=0;
String author="";
String publisher="";
String content="";
String cover="";
if(rs.next()){
//进行赋值
title=rs.getString(2);
publisher=rs.getString(5);
author=rs.getString(4);
content=rs.getString(6);
count=rs.getInt(8)+1;//当前自己阅读了一次
ps.setString(7,"/images/"+cover);
}
2.在界面中添加图片
下次见咯