项目一的完善


    工作(job)的CRUD
    一. 以后开发要注意,一个domain的属性(一张表中的列)在开发的时候一定要先把它搞清楚
        1.这个属性的意思(含义)
        2.研究这个属性的类型
        3.这个属性的值从哪里来???
        private Integer id;
        //职位标题(Java高级工程师,会计,育儿嫂)
        private String title;
        //工作地址(北京,上海,工龙村)
        private String address;
        //工作地址对应的id
        private Integer address_id;
        //招聘人数
        private Integer jobnum;
        //待遇(工资)
        private Integer treatment;
        //职位描述(相关专业,长得帅)
        private String describes;
        //职位要求(会CSS,JS,Java,Spring等技术)
        private String requires;
        //静态网站的地址(静态化的效果,明天再讲)
        private String htmlurl;
        //职位类型(1->全职,0->兼职)
        private Integer positiontype;
        //是否启用
        private Boolean isenabled;

    二.完成后端的CRUD【和前面做的是一样的】
    三.回显功能
        <select id="address" name="address_id" class="form-control">
            <c:forEach items="${addressList}" var="address">
                <option value="${address.id}"
                    <c:if test="${address.id==job.address_id}">
                        selected
                    </c:if>
                >${address.name}</option>
            </c:forEach>
        </select>
    四.创建视图
        相当于是一个假表
        create view 视图名称  as  select....
        可以直接查询视图
        select * from 视图名称
    五.模板技术
        动态网页(数据可变)与静态网页(访问快,SEO排名高)
        动态网页静态代(伪静态[只改后缀],真静态)
            用到模板技术:数据+模板=输入文本
            freemarker【ftl】,velocity【vm】

    F12->看js有没有错,再看网络传参有没有问题
         如果前端没有问题,问题就在后端(有没有接收参数,如果接收到了,有没有调用方法,SQL有没有写对,数据有没有返回)
         没有找到 -> 比较法,打印法,删除法

 

 

 

 


    freemarker:是比较流行的一个模板技术【ftl】
    使用freemarker的步骤(以后只需要百度查找即可)
        1.导包(freemarker是一个小框架)
        2.创建一个配置对象Configuration(加个版本)
        3.设置加载路径
        4.设置字符集(默认)
        5.创建模板(准备一个ftl模板)
        6.准备数据(Map,对象)
        7.数据+模板=输出文件(Writer)
    案例一:代码生成器(半成品) -> 下一个项目会有一个插件
    案例二:动态网页静态化(添加,修改)
        修改的时候需要把原生的那个静态化页面删除
        删除数据的时候也要把静态化页面删除
        需要把路径记录下来,才可能去找到这个静态化页面

 

 



    一.高级查询
        1.1 拼接where条件的字符串(第一个条件前面加where,其它的条件前面加and)
          a. 先加一个  where 1=1 -> 影响查询性能
          b. 准备一个标签 flag=true -> true就是where,false就加and
                  默认是true,每一次就加where,加完后把它改回成false(第n次就改加使用and)
                  代码量比较大
          c. 准备一个List<String>,装的就是每一个条件(前面没有where与and)
                  遍历这个集合的时候,第一次加where,其它的情况加and
                  在理解上,使用就还是有点麻烦
          d. 把第一个and替换成where -> 比较简单,不影响性能
                  whereSql.replaceFirst("and", "where");
        1.2 dao中需要加上where条件
            查询总条数与查询当前页的数据 -> where条件是一样的
            
    二.高级查询+分页
        之前的分页是直接一个超连接,发送请求就可以成功了。但是当我们有了高级查询条件后,这个分页会导致高级查询的条件丢失!
        解决方案:点击分页的时候提交表单(表单中就有咱们的分页以及查询数据)
        2.1 在form中加上了一个隐藏域 (当前页)
            注意:这里必需给一个初始页数
            <input type="hidden" name="currentPage" id="currentPage" value="1" />
        2.2 修改咱们的a标签(访问我们的一个js方法)
            <a href="javascript:goPage(传的页数);">上一页/下一页/..</a>
        2.3 完成goPage方法
            function goPage(page){
                //1.把当前页传到隐藏域中
                document.getElementById("currentPage").value= page;
                //2.提交表单
                document.getElementById("表单id").submit();
            }
        
    三.登录功能(Spring的拦截器)
        select * from t_user where username=? and password=?
        3.1 登录的功能:
            1.获取前台传过来的用户名与密码
            2.根据用户名与密码到数据库中查询当前登录用户
            3.如果查询到了用户 -> 把用户存在sessoin中,跳转到主页面
                 如果没有查询到用户 -> 跳转到登录页面
        3.2 登录的拦截
            1.准备一个Spring的拦截器
                class LoginInterceptor 实现 HandlerInterceptor
                    preHandle:在执行方法之前进行的拦截
                        返回false代表不放行
                        返回true代表放行
            2.对拦截器进行相应的配置(applicationContext-mvc.xml)
                <mvc:interceptors>
                    <mvc:interceptor>
                        <!--你要拦截的是哪些请求 -->
                        <mvc:mapping path="/**"/>
                        <!--配置你不拦截的请求  -->
                        <mvc:exclude-mapping path="/login"/>
                        <mvc:exclude-mapping path="/assets/**"/>
                        <!-- 所有请求都会经过这个拦截器 -->
                        <bean class="cn.itsource.cms.web.interceptor.LoginInterceptor" />
                    </mvc:interceptor>
                </mvc:interceptors>
            3.在拦截器中实现功能
                到session中拿当前登录用户
                如果没有拿到 -> 跳回登录页面
                如果拿到,直接放行

转载于:https://my.oschina.net/u/4138652/blog/3057601

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值