动力节点-crm-项目笔记(待完善)

文章目录

    • 1,搭建开发环境:
      • 1.1创建项目:crm-project
        • 1.1.1设置JDK.
        • 1.1.2创建工程:crm
        • 1.1.3补全目录结构:
        • 1.1.4设置编码格式:UTF-8
        • 1.1.5数据库编码设置
        • 1.1.6字符集编码的设置
    • 2.spring application配置文件知识点
      • 2.1.applicationContext-datasource.xml
        • 2.1.1.sqlsessionFactory他是一个数据库
        • 2.1.2为什么使用127.0.0.1不用localhost
      • 2.2 applicationContext-mvc.xml
        • 2.2.1服务器一起东就加载servlet实例 servlet会加载mvc的配置文件
        • 2.2.2拦截器
      • 2.3 applicationContext.xml
        • 2.3.1 监听器加载service层和dao层的配置文件
        • 2.3.2服务器启动对配置文件的加载顺序
      • 2.4 pom.xml
        • 2.4.1 `和`
        • 2.4.2maven对配置文件的编译
    • 3.tomcat和idea
        • 3.1idea项目是如何放在tomcat webapps下的
        • 3.2使用127.0.01ip地址
        • 3.3恢复代码提示的默认设置
    • 4.jsp
      • 4.1 jquery
        • 4.1.1 使用标签保存数据,以便在需要的时候能够获取到这些数据:
        • 4.1.2 jsp的运行原理:
        • 4.1.3 ajax $.each( )的用法
        • 4.1.4 submit发送同步,button通过绑定 发送异步
        • 4.1.5 jquery小结
        • 4.1.6 ajax
        • 4.1.7 jquery事件函数的用法:
      • 4.2 web
        • 4.2.1 cookie的参数传输
        • 4.2.2 cookie和session
        • 4.2.3 window.location.href
        • 4.2.4 jsp如何显示到浏览器上的
        • 4.2.5 jsp和html的编码区别
        • 4.2.6 `浏览器只能解决网页,json字符串只能由ajax和js来解决`
        • 4.2.7 index.jsp在根目录下自带base的标签的
        • 4.2.8 html中就加id 等html标签 就不要加js 的标签
        • 4.2.9 同步请求 (页面跳转了)
        • 4.2.10 整个页面加载完才执行入口函数
        • 4.2.11 web的作用域
        • 4.2.12 s e s s i o n S c o p e . s e s s i o n U s e r . n a m e 和 {sessionScope.sessionUser.name}和 sessionScope.sessionUser.name{sessionUser.name}区别
      • 4.3. bootstrpt
        • 4.3.1 页面切割技术:`和:` ``
          和:``
        • 4.3.2 模态窗口
          • 模态窗口:
          • 控制模态窗口的显示与隐藏:
          • 模态窗口的意义:
        • 4.3.3 正则表达式
        • 4.3.4 日历
        • 4.3.5 日历用法
        • 4.3.6 分页插件
        • 4.3.7

1,搭建开发环境:
1)创建项目:crm-project
设置JDK.
创建工程:crm
补全目录结构:
设置编码格式:UTF-8
2)添加jar包:添加依赖—参考课件.
3)添加配置文件:参考课件.
4)添加静态页面资源:
webapps
|->stumgr
|->crm
|->.html,.css,.js,.img test.jsp
|->WEB-INF
|->web.xml
|->classes
|->lib
*web应用根目录下的内容都是不安全的,外界可以通过url直接访问;
所以,一般为了数据的安全,都会把页面放到WEB-INF下,因为WEB-INF目录下的资源是受保护的,外界不能直接访问。

1,搭建开发环境:

1.1创建项目:crm-project

1.1.1设置JDK.

动力节点-crm-项目笔记(待完善)_第1张图片

动力节点-crm-项目笔记(待完善)_第2张图片

1.1.2创建工程:crm

动力节点-crm-项目笔记(待完善)_第3张图片

动力节点-crm-项目笔记(待完善)_第4张图片

1.1.3补全目录结构:

动力节点-crm-项目笔记(待完善)_第5张图片

1.1.4设置编码格式:UTF-8

动力节点-crm-项目笔记(待完善)_第6张图片

动力节点-crm-项目笔记(待完善)_第7张图片

1.1.5数据库编码设置

动力节点-crm-项目笔记(待完善)_第8张图片

1.1.6字符集编码的设置

需要设置字节码的

  • 编码
  • 解码
  • 传输数据的字节码

动力节点-crm-项目笔记(待完善)_第9张图片

2.spring application配置文件知识点

2.1.applicationContext-datasource.xml

2.1.1.sqlsessionFactory他是一个数据库

动力节点-crm-项目笔记(待完善)_第10张图片

2.1.2为什么使用127.0.0.1不用localhost

localhost只是tomcat配置的一个映射,localhost是可以修改的有风险

动力节点-crm-项目笔记(待完善)_第11张图片

2.2 applicationContext-mvc.xml

2.2.1服务器一起东就加载servlet实例 servlet会加载mvc的配置文件

动力节点-crm-项目笔记(待完善)_第12张图片

1 服务器一起东就加载servlet实例

   
    <servlet>
        <servlet-name>dispatcherservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:applicationContext-mvc.xmlparam-value>
        init-param>
       
    servlet>
    <servlet-mapping>
        <servlet-name>dispatcherservlet-name>
        <url-pattern>/url-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>dispatcherservlet-name>
        <url-pattern>*.dourl-pattern>
    servlet-mapping>

2.2.2拦截器

​ a)提供拦截器类:implements HandlerInterceptor{
​ --pre
​ --post
​ --after
​ }
​ b)配置拦截器:springmvc.xml

能通过return ture 不能通过return false

配置拦截器

<mvc:interceptors>
    <mvc:interceptor>
        拦截的内容
        <mvc:mapping path="/settings/**"/>
        <mvc:mapping path="/workbench/**"/>
        放行的内容   有一个东西即要放行也要拦截,优先进行放行
        <mvc:exclude-mapping path="/settings/qx/user/toLogin.do"/>
        <mvc:exclude-mapping path="/settings/qx/user/login.do"/>
        <bean class="com.bjpowernode.crm.settings.web.interceptor.LoginInterceptor"/>
    mvc:interceptor>
mvc:interceptors>

拦截的是url

settings/* 拦截一层目录 settings/*/login.jsp还是没拦截到

settings/** 拦截settins下所有目录

2.3 applicationContext.xml

2.3.1 监听器加载service层和dao层的配置文件

(applicationContext.xml,applicationContext-datasource.xml)

监听器在服务器一启动是就会进行加载

动力节点-crm-项目笔记(待完善)_第13张图片

2.3.2服务器启动对配置文件的加载顺序

服务器一启动就用监听器加载applicationContext.xml applicationContext.xml加载aplicationContext-datasource.xml aplicationContext-datasource.xml 会加载mybatis-config.xml

dispatcherservlet一启动就会加载application-mvc.xml配置文件

2.4 pom.xml

2.4.1

动力节点-crm-项目笔记(待完善)_第14张图片

2.4.2maven对配置文件的编译

动力节点-crm-项目笔记(待完善)_第15张图片

maven默认只会编译java的源文件,不会编译xml配置文件

加上这个就会编译xml配置文件了

3.tomcat和idea

3.1idea项目是如何放在tomcat webapps下的

tomcat

webapps
|->stumgr
|->crm
|->.html,.css,.js,.img test.jsp
|->WEB-INF
|->web.xml
|->classes
|->lib

  • maven会把java代码,配置文件 编译好放在classes , 把依赖jar包放在lib目录下

  • 静态资源放在webapp下,会直接部署到tomcat webapps下的crm项目中根目录中

  • 页面要放在webapp web-inf下

  • 在crm根目录中能直接被访问,web-inf下的资源是受保护的不能直接访问,

  • 要通过controller跳转才能访问,到了controller后我们就能掌握主动权,对用用户进行验证

  • 为什么不将image,jquery放入web-inf下,这些东西放在web-inf下,因为要我们通过controller转发才能实现到页面上会非常麻烦,用一个要跳一个会非常麻烦

动力节点-crm-项目笔记(待完善)_第16张图片

3.2使用127.0.01ip地址

动力节点-crm-项目笔记(待完善)_第17张图片

3.3恢复代码提示的默认设置

动力节点-crm-项目笔记(待完善)_第18张图片

4.jsp

4.1 jquery

4.1.1 使用标签保存数据,以便在需要的时候能够获取到这些数据:

  • 给标签添加属性:

    如果是表单组件标签,优先使用value属性,只有value不方便使用时,使用自定义属性;

    如果不是表单组件标签,不推荐使用value,推荐使用自定义属性。

  • 获取属性值时:

    如果获取表单组件标签的value属性值:dom对象.value jquery对象.val()

    如果自定义的属性,不管是什么标签,只能用:jquery对象.attr(“属性名”);

不加引号会认为是变量,加了才认为是字符串

var activityId='${requestScope.activity.id}';
//删除活动备注
$("#deleteActivityRemark").click(function () {
   //获得自己创建的属性的值
   var id=$("#deleteActivityRemark").attr("remarkId");
   var activityId='${requestScope.activity.id}';
    
    
    
    
    <a class="myHref" remarkId="${remark.id}"  id="deleteActivityRemark" ><span class="glyphicon glyphicon-remove" style="font-size: 20px; color: #E6E6E6;"></span></a>
			

4.1.2 jsp的运行原理:

  1. xxx.jsp:
  • tocmat中运行:
    把xxx.jsp翻译成一个servlet,
    运行servlet,运行的结果是一个html网页
    把html网页输出到浏览器
  • html网页在浏览器上运行:
    先从上到下加载html网页到浏览器,在加载过程中,运行前端代码
    当页面都加载完成,再执行入口函数和js.
  1. 把页面片段显示在动态显示在页面中:
    • 选择器.html(htmlStr):覆盖显示在标签的内部
    • 选择器.text(htmlStr):覆盖显示在标签的内部
    • 选择器.append(htmlStr):追加显示在指定标签的内部的后边

4.1.3 ajax $.each( )的用法

success:function (data) {
				//显示总条数
				//$("#totalRowsB").text(data.totalRows);
				//显示市场活动的列表
				//遍历activityList,拼接所有行数据
				var htmlStr="";
				$.each(data.activityList,function (index,obj) {
					htmlStr+="";
					htmlStr+="+obj.id+"\"/>";
					htmlStr+=""+obj.name+"";
					htmlStr+=""+obj.owner+"";
					htmlStr+=""+obj.startDate+"";
					htmlStr+=""+obj.endDate+"";
					htmlStr+="";
				});
				$("#tBody").html(htmlStr);

htmlStr+=“”; 在"" 双引号中加 双引号 要在里面的双引号中 加上 \" 进行转义>

htmlStr+=“”+obj.owner+“”; 在"" 双引号中加 "+ +" 表示 obj.owner 不是一个字符,而是数据

4.1.4 submit发送同步,button通过绑定 发送异步

<input type="submit" value="发送同步请求">
<input type="button" id="queryBtu" value=" 通过id创建一个jquery对象绑定按钮,发送异步请求">

4.1.5 jquery小结

<script type="text/javascript">
   $(function () {
      $("#loginBtu").onclick(function () {
         var loginAct =$.trim ($("#loginAct").val());

         var loginPwd =$.trim( $("#loginPwd").val());

         var isRemPwd = $("#isRemPwd").prop("checkbox");

         
      })
   })
</script>
  • trim 方法是去掉空格

  • 使用jquery获取指定元素的指定属性的值:
    选择器.attr("属性名");//用来获取那些值不是true/false的属性的值.
    选择器.prop("属性名");//用来获取值是true/false的属性的值.例如:checked,selected,readonly,disabled等。

  • jquery中判断只有==和!=,因为是弱语言所以没有equel

  • 后台放送过去的是一个json(应该是returnObject对象自动变json)

  • (前端ajax定义好发送的就是json)后台接受的也是一个json

$("#msg").html(data.message);
$("#msg").text(data.message);
  • html即能写文本信息也能写标签信息

  • text 只能写标签信息

4.1.6 ajax

​ loginAct:loginAct,
​ loginPwd:loginPwd,
​ isRemPwd:isRemPwd

这种是不标准的未加双引号

//给"登录"按钮添加单击事件
			$("#loginBtn").click(function () {
				//收集参数
				var loginAct=$.trim($("#loginAct").val());
				var loginPwd=$.trim($("#loginPwd").val());
				var isRemPwd=$("#isRemPwd").prop("checked");
				//表单验证
				if(loginAct==""){
					alert("用户名不能为空");
					return;
				}
				if(loginPwd==""){
					alert("密码不能为空");
					return;
				}

				//显示正在验证
				//$("#msg").text("正在努力验证....");
				//发送请求
				$.ajax({
					url:"settings/qx/user/login.do",
					data:{
						"loginAct":loginAct,
						"loginPwd":loginPwd,
						"isRemPwd":isRemPwd
					},
					type:"post",
					dataType:"json",
					async:"false",
					success:function (data) {
						if(data.code=="1"){
							//跳转到业务主页面
							window.location.href="workbench/index.do";
						}else{
							//提示信息
							$("#msg").text(data.message);
						}
					},
					beforeSend:function () {//当ajax向后台发送请求之前,会自动执行本函数;
						//该函数的返回值能够决定ajax是否真正向后台发送请求:
						//如果该函数返回true,则ajax会真正向后台发送请求;否则,如果该函数返回false,则ajax放弃向后台发送请求。
						$("#msg").text("正在努力验证....");
						return true;
					}
				});
			});

4.1.7 jquery事件函数的用法:

  • 选择器.click(function(){//给指定的元素添加事件
    //js代码
    });
  • 选择器.click();//在指定的元素上模拟发生一次事件

4.2 web

4.2.1 cookie的参数传输

动力节点-crm-项目笔记(待完善)_第19张图片

4.2.2 cookie和session

在默认情况下,session对象在关闭浏览器后并不是立刻被销毁,因此,为了考虑系统的安全性,在用户退出时,需要即刻清除session对象,防止他人盗用session对象中的信息

其实在浏览器关闭后,session并没有失效,正常来说一个session的存活时间是30分钟,也就是在不操作这个session的情况下,30分钟自动清除。可是实际中浏览器关闭,设置的session也会随之消失,这里的消失是他这个session的你找不到了,不是他没有了,因为在浏览器重新打开时,浏览器总会自动给你创建一个的新的session。session并不是唯一的,每个session都有自己的一个专属sessionId,这个sessionId在浏览器打开时创建,保存在浏览器的cookie中,浏览器关闭,cookie自动清除,sessionId丢失,之前的session找寻不到!

cookie不销毁也会这样

4.2.3 window.location.href

window.location.href = "settings/qx/user/toLogin.do";

动力节点-crm-项目笔记(待完善)_第20张图片

4.2.4 jsp如何显示到浏览器上的

jsp就是一个servlet,先在tomcat运行,结果是一个html

4.2.5 jsp和html的编码区别

jsp默认是utf-8

html iso8859-1

4.2.6 浏览器只能解决网页,json字符串只能由ajax和js来解决

4.2.7 index.jsp在根目录下自带base的标签的

<%
	String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
%>


4.2.8 html中就加id 等html标签 就不要加js 的标签

动力节点-crm-项目笔记(待完善)_第21张图片

4.2.9 同步请求 (页面跳转了)

同步请求的方式 有地址栏,form表单,超链接 ajax只有地址栏一个方式 window.loction.href

4.2.10 整个页面加载完才执行入口函数

也就是静态资源加载完后

<script type="text/javascript">
    $(function () {
      
    });
</script>

4.2.11 web的作用域

jsp作用域

1,把控制层(controller)代码中处理好的数据传递到视图层(jsp),使用作用域传递:

pageContext:用来在同一个页面的不同标签之间传递数据。

jsp的每个标签对应着一个类 如

request:在同一个请求过程中间传递数据。

session: 同一个浏览器窗口的不同请求之间传递数据。

或者是一个用户的范围内

application:所有用户共享的数据,并且长久频繁使用的数据。

4.2.12 s e s s i o n S c o p e . s e s s i o n U s e r . n a m e 和 {sessionScope.sessionUser.name}和 sessionScope.sessionUser.name{sessionUser.name}区别

一个在指定的范围找 一个是在四个作用域所有的范围找

4.3. bootstrpt

4.3.1 页面切割技术:和: