学子商城实训项目总结
学子商城
- 前端一些基础知识
- Tomcat的环境搭建,配置以及基本操作
- 环境搭建
- 配置以及基本操作
- Servlet的开发
- Servlet工作原理
- HttpServletRequest对象
- HttpServletResponse对象
- 响应状态码:
- 项目思维
- Cookie
- Session
- AJAX
- 异步请求
- 小知识
- 实用快捷键
前端一些基础知识
在学习项目的过程稿我们可以慢慢发现,我们只掌握后端的知识是远远不够的,在一个项目中,我们可以分工,但是如果对前端的知识一无所知,那么团队之间的合作也异常困难。
前端的知识无非就是涉及 HTML,CSS,JavaScript. 它们分别的作用是控制数据,控制数据表现和分离,控制行为提供一下动态功能的设置增强网页与用户之间的交互性,
1、HTML
表单
2、CSS
1)、CSS嵌入HTML中的方式
* 内联样式表
* 内部样式表
* 外部样式表
2)、CSS选择器
* 标签选择器
* ID选择器
* 类选择器
匿名类选择器、命名类选择器
* 组选择器
* 所有后代子元素选择器
* 直接后代子元素选择器
* 伪类选择器
3、JavaScript
基于对象,由事件驱动的客户端脚本语言
1)、JS在html中编码方式
* 直接在标记中使用
a.其中HTML都是一些基础的操作。
b.后面用CSS时我们涉及了CSS嵌入HTML中的方式:内联样式表,内部样式表,外部样式表,其中内部样式表可以在其中添加my.css等外部设置来引用,CSS选择器其中标签选择器,ID选择器,类选择器,匿名类选择器,命名类选择器,组选择器,所有后代子元素选择器,直接后代子元素选择器,伪类选择器它们之间都有细微的差别;
创建一个css文件 css文件是以.css为扩展名的文件
css文件通过选择器定义css样式
HTML文件链接该CSS文件
css中属性名和值之间是冒号
样式和属性之间冒号,多个属性之间用分号行级块元素 内部样式表 head标记中再写一个style标记 solid 加边框
c.JavaScript的学习中,其中有三种编码方式,直接在标记中,将JS代码编写在script标记中,将JS代码编写在单独的js文件中。
Tomcat的环境搭建,配置以及基本操作
环境搭建
1、Tomcat* 安装JDK* 配置环境变量 JAVA_HOME变量名:JAVA_HOME变量值:C:\Program Files\Java\jdk1.8.0_121(JDK的安装路径)* 安装Tomcat 解压到某个盘符的根路径中,测试启动tomcat,bin/startup.bat* 安装Java EE版eclipse* eclipse中关联tomcat工作栏中有Servers,Apache下选择自己的版本,再选择tomcat的路径,选择JDK版本* 测试eclipse中启动tomcat2、创建web项目
3、部署web项目到tomcat中
4、测试访问tomcat中部署的项目打开浏览器输入:http://localhost:8080/day10/test.html
5、一键式部署项目,启动服务器,访问项目
6、修改部署目录,将项目部署到tomcat/webapps中
配置以及基本操作
配置的时候将Tomcat和eclipse进行绑定,也就是点击Window
添加对应的Tomcat版本即可。
当做项目时遇到tomcat端口占用等问题时,可以点击Clean,再重新把需要运行的项目通过Add加入进去。
Servlet的开发
- 创建类,继承HttpServlet
- 重写service()方法
- 配置Servlet
这里需要注意
*创建类继承HttpServlet,这里要注意java中本身不含这个包,所以需要去tomcat的bin目录下去找到servlet.api并将它导入到lib目录下,才可以引入HttpServlet包。我们也要重写service()方法,这个方法在写servlet时必须引用。
@WebServlet(“/”)的/必须要有,/后面的根据需求写,这就是连接的桥梁。
eg:@WebServlet("/saveSession.do") ; .do? 后面其实就是赋值操作,比如页面采用get方法网址后面就是这么显示获取到的输入值的
服务器创建两个很重要的对象,一个HttpServletRequest对象,一个HttpServletResponse对象 ,后面进行详细说明
Servlet工作原理
- 服务器启动,建立路径与Servlet之间的映射关系
- 浏览器点击登录,浏览器路径http://localhost:8080/day10/login.do
- 浏览器根据路径与服务器建立连接
- 浏览器向服务器发送数据(/day10/login.do,账号,密码等数据)
- 当服务器接收到请求,服务器创建两个对象,一个HttpServletRequest对象,一个HttpServletResponse对象
- 服务器接收到请求数据,服务器将数据存储到HttpServletRequest对象中
- 服务器根据/day10/login.do,查找到day10项目中的与login.do对应的Servlet
- 服务器实例化LoginServlet
- 调用LoginServlet中service()方法,传递request对象,response对象
response.sendRedirect(“index.html”);
向response对象中,存储路径,index.html,存储302状态码 - 服务器将response对象中的数据存储到一个响应数据包中
- 服务器将数据包响应给浏览器
- 浏览器接收到响应数据包(302,浏览器重新定向到index.html)
- 浏览器再向服务发送请求,访问index.html
- 服务器将index.html代码发送到浏览器
- 浏览器解析index.html,显示页面
- 浏览器与服务器断开连接
HttpServletRequest对象
用来定义一组处理请求API的接口,该接口是由web应用服务器厂商提供的实现
该接口,代表请求对象。 浏览器访问服务器,服务器都会创建该对象,存储浏览器的请求数据
String getParameter(String paramName);获取浏览器发送到服务器请求参数的值String[] getParameterValues(String paramName);获取多选框值
浏览器发送数据到服务器的方式:
* 提交表单* 通过路径向服务器传参 <a href="delete.do?id=100001&name=jerry">删除</a>处理中文tomcat8.0以及8.0以上的版本post请求和get请求处理中文乱码:request.setCharacterEncoding("utf-8");tomcat8.0之前的版本:post请求:request.setCharacterEncoding("utf-8");get请求:String province = request.getParameter("province");byte[] bytesp = province.getBytes("ISO-8859-1"); // 重新编码province = new String(bytesp,"UTF-8"); // 解码
HttpServletResponse对象
用来定义一组处理响应API的接口,该接口是由web应用服务器厂商提供的实现
该接口,代表响应对象。 服务器会将该对象存储的数据以响应数据包的方式发送到浏览器。
void setContentType("text/html;charset=utf-8");设置内容类型,指定浏览器使用的字符集void setCharacterEncoding("utf-8");设置响应内容使用的字符集PrintWriter getWriter();获取指向response对象的输出流 void sendRedirect(String url);重定向
响应状态码:
404,资源不存在(路径错误)500,服务器内部异常(代码异常)405,service()方法定义错误 200,正常302,重定向
项目思维
我们要明白我们在做什么,我们的目标是什么,前期我们应该完成什么基础, html+Servlet+Jdbc—JSP+Servlet+Jdbc。
框架基本清晰后我们要对功能部分进行进一步的完善。
Cookie
Cookie:保存在浏览器端 保存到客户端磁盘中
Cookie的特点:
- cookie数据保存在客户端浏览器中
- cookie保存数据大小有限制,不能超过4K
- cookie的数据保存在客户端浏览器中,可能会被修改或删除
- cookie的使用会受浏览器限制,浏览器可以禁u止cookie
- cookie中不能直接保存中文* cookie中只能保存字符串
- cookie的读取,只能读取同- -个应用中的cookie,而且只能读取相同路径或父路径中的cookieSession:保存在服务器端保存在服务器的内存中
cookie的有效期
大于0 ,保存到客户端磁盘中
等于0,被荆楚状态
-1,创建cookie,没有设置有效期,有效期为-1,被保存到浏览器的缓存中
浏览器关闭,cookie自动被清除
cookie 记住密码的设置需要正确填写 value 前面的值
Session
session是服务端存储的一个对象,主要用来存储所有访问过该服务端的客户端的用户信息(也可以存储其他信息),从而实现保持用户会话状态。但是服务器重启时,内存会被销毁,存储的用户信息也就消失了。
Cookie的有效期如果设置为-1,意味着没有设置有效期,被保存到浏览器的缓存中,浏览器关闭,cookie自动被清除。这也很好的和session形成了对比,session是保存在服务器端,保存在服务器的内存中,获取session对象时也有一个有趣的知识点,首先浏览器到服务器中取查找有无session对象,如果存在则立即返回,不过不存在则new一个新的session对象。,如果对象session还在其中,把浏览器关掉就相当于把这个服务器号给关掉了,再次打开浏览器浏览器的号会丢失,所以不能再访问session那个对象,那个对象也会被Java垃圾回收机制收回。session时基于浏览器的,在浏览器的一次会话内有效对浏览器的一次开关操作即为一次完整会话,换个浏览器实验结果也不会不同。session对象的失效在tomcat中默认是30分钟
- HttpSession getSession();到服务器中查找session对象,如果存在则立即返回,如果不沉溺在就new一个session对象。
- HttpSession getSession(boolean bo);当参数传true,功能与无参的方法相同,如果查找到session对象则返回该对象,如果没有查找到则new一个session对象;当参数传false,如果查找到session对象返回该对象,如果没用查找到session对象,则返回null.
不同的用户访问服务端的时候会在session对象中存储键值对,“键”用来存储开启这个用户信息的“钥匙”,在登录成功后,“钥匙”通过cookie返回给客户端,客户端存储为sessionId记录在cookie中。当客户端再次访问时,会默认携带cookie中的sessionId来实现会话机制。 - session持久化
用于解决重启服务器后session消失的问题。在数据库中存储session,而不是存储在内存中。通过包:express-mysql-session。
当客户端存储的cookie失效后,服务端的session不会立即销毁,会有一个延时,服务端会定期清理无效session,不会造成无效数据占用存储空间的问题。
AJAX
AJAX就是异步的javascript与服务器的交互,向服务器发送异步请求。所谓的异步请求就是:用户感觉不到浏览器与服务器的交互,也就是页面的局部刷新。 AJAX也就是Asynchronous JavaScript And XML的缩写,其中我们要学习它其实就是学习其中的对象XMLHttpRequest对象,AJAX其中其实就这一个对象,它是用来发送异步请求的,也是AJAX的核心。
Ajax的使用 当某项操作需要访问服务器且页面保持现有状态,不需要刷新时。
异步请求
1.用户感觉不到浏览器与服务器的交互 2.页面局部刷新
该对象本身有状态,每经过一个操作状态都会自己发生改变,我们通常取最后一次状态值,即服务器返回值时该对象的状态作为参考。
小知识
- 当前端页面发生错误是我们可以通过F12来进行查找问题所在
- html页面转换为jsp页面:保留jsp的第一行,将HTML代码复制进jsp页面即可
- eclipse中我们需要整体修改一些手误单词时,可以用 ctrl+F 进行查找替换功能
实用快捷键
- AIT+/ 回车 自动补全
- Ctrl+/ 快速注释当前行
- Ctrl+D: 删除当前行
- Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
- Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
- Ctrl+Shift+F 格式化当前代码
- Ctrl+Shift+O:快速地导入import
学子商城实训项目总结相关推荐
- python实训项目-黑马程序员上海校区Python21期Django项目实训
黑马程序员上海中心 月薪一万只是起点 关注 晚上十点,一名名Python学生正在酣畅淋漓地撸代码,手指不间断地敲击着键盘,发出机械而清脆的声音. 各个小组在经过为期4天的django项目小组开发,终于 ...
- 实训项目2Linux基本命令,实训项目2 Linux文件系统管理
实训项目2 Linux文件系统管理 发布时间:2011-06-24 15:51:10来源:红联作者:397778823 一. 实训目的: 1. 掌握磁盘分区的方法: 2. 掌握文件系统的建立.挂装.解 ...
- 安卓实训项目:基于储存卡音乐播放器实训报告5.0
安卓实训项目:基于储存卡音乐播放器实训报告5.0 (一)功能要求 在基于存储卡音乐播放器V0.4基础上,作如下修改: 1.创建应用程序常量接口保存广播频道常量 2.在音乐播放器应用程序类里添加两个属性 ...
- android 实训的背景,Android实训项目作业.doc
Android实训项目作业 2-1用整型数计算两个数的和2 2-7排列任意4个数的顺序,按从小到大顺序输出2 2.1编写显示下列图形的程序.2 3.1编写程序,当点击按钮命令后,页面标题及文本组件的文 ...
- java实训手册_java实训项目用户手册
java实训项目用户手册 1 用户手册 第 1章 引言 1.1编写目的编写本手册的主要目的是为了方便使用的用户管理系统能够更加方便使用 此系统,以及更快的掌握JDK,MySQL,MyEclipse使之 ...
- 2020年Java实训项目【GUI学生信息管理系统】目录
Java实训项目1:GUI学生信息管理系统 - 实训概述 Java实训项目2:GUI学生信息管理系统 - 系统概述 Java实训项目3:GUI学生信息管理系统 - 涉及知识点 Java实训项目4:GU ...
- Java实训项目1:GUI学生信息管理系统 - 实训概述
文章目录 一.实训概述 1.实训目的 2.实训项目简介 3.项目开发思维导图 4.实训日志模板 5.实训报告模板 6.实训考核标准 一.实训概述 1.实训目的 让学生综合运用J2SE有关知识开发[学生 ...
- Java实训项目:GUI学生信息管理系统(2019)【下】
Java实训项目:GUI学生信息管理系统(2019)[下] 本篇目录 六.实现步骤 13.应用程序类 14.窗口界面类(JFrame)
- Java实训项目:GUI学生信息管理系统(2019)【中】
Java实训项目:GUI学生信息管理系统(2019)[中] 本篇目录 四.涉及知识点 1.Java基本语法 2.Java流程控制
- Java实训项目:GUI学生信息管理系统(2019)【上】
Java实训项目:GUI学生信息管理系统(2019)[上] 本篇目录 零.实训概述 1.实训目的 2.项目简介
最新文章
- 12.term_vectors查看
- SAP CRM BSP component在test mode下launch的执行顺序
- 一厕难求!NASA悬赏三万五千美元,只为一个能在月球上用的马桶
- 最大流,最小费用最大流:解析 + 各种板子
- [Leetcode][第841题][JAVA][钥匙和房间][DFS][BFS]
- 浅谈Tuple之C#4.0新特性
- 爬虫教程( 4 ) --- 分布式爬虫 scrapy-redis、集群
- 使用SQL向SQL Server2005中插入图片
- ios 开发需要看的书籍
- 探索新型化学反应的AI机器人诞生!有望加速药物发现 | Nature论文
- 超简单的Springboot中的日志管理配置
- FCPX内置音效库汉化版
- 记Thinkpad的一次扩容升级经历
- 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 G题 数学思维
- QT QPainter
- SEDANSPOT Detecting Anomalies in Edge Streams阅读记录
- 基于STM32的光照度自动调节系统
- 结巴分词 java_Java版结巴分词自定义词库
- 如何申请Office 365 E5开发者账号,开通OneDrive 5T空间教程
- 前端javascript总结笔记(一)--js的三座大山