CMS实战

1. 登录与登出   
    这是HttpSession的一个典型应用
    到了登陆页面,会向后台发出一个请求生成一个验证码的图片

2. 如何利用Filter来实现是否登录的判断
    这里如果用servlet做判断的话就不能过滤jsp,所以最好还是用Filter
   
3. 如何利用Filter技术设置POST请求的编码
    记住一定要将这个Filter放在最前面
   
4. 理解页面参数是怎样传输到后台
    上传文件的话method里面必须用post,enctype="multipart/form-data"
   
5. 理解后台如何获取页面传递过来的参数
    request.getParameter();
    request.getParameterValues(); 参数名一样,值有多个
    request.getParameterMap(); 得到所有值,value是一个字符串数组。
   
6. 理解在Servlet中如何向JSP传递数据
    在servlet调用request.setAttribut();来传递数据
    在jsp里面调用request.getAttribut();来接受数据,也可以借助JSTL和EL表达式来减轻工作量。
    EL表达式里面会自动按照范围来搜索页面的对象
    request.getAttribut();是必须要set进去才能拿出来,request.getParameter();是可以拿get和post的一些数据
   
7. 了解PageTaglib的一些应用。

8. 理解DAO
    封装数据库操作的逻辑。
   
9. 工厂与依赖注入
    A要调用B,在A中如何调用B对象?
        B容易变化,所以不在A中直接创建B
        可以创建一个工厂,由工厂创建B,一旦B发生变化,修改工厂即可
        A只需依赖工厂即可获得B
    依赖注入(DI)
        进一步解除A与工厂之间的耦合关系
        由其他人(比如容器或者框架中的其他对象)将B的具体实现注入到A
    BeanFactory主要负责根据配置文件创建所有需要创建的DAO、Service等对象,
    我们在TOMCAT启动的时候,把BeanFactory放到ServiletContext中,以便在任何其他请求中,均可以获得BeanFactory对象,从而可以通过他拿到DAO对象。
   
10. 前端控制器(分发器)
    BaseServlet就是一个前端控制器,它负责将不同的请求分发到各个地方。
    我们自己制定分发规则(采用命名约定的方法),大大减少了Servlet的数量。
    从客户端发起一个请求,在这个请求里携带一个Method参数,根据这个参数的取值来分别调用Servlet里面不同的方法(利用反射实现的),
   
11. 小细节
    当你重写了HttpServlet的init(config)方法之后,请记住要调用super.init(config),这样在后续的请求中,你才可以获得ServletContext对象。
   
12. 从CRUD的处理中,理解WEB应用开发的基本过程(从需求、到分析概念、到设计、到实现)
    从需求到分析概念:
        文章,留言,附件,管理员,会员
        一个文章可以有多个留言,一个文章可以由某个人创建,一个文章可以包含多个附件
    设计:
        思考当你要实现某一个功能需要考虑实现这个功能的过程中需要哪些工作,应该在哪里去做这些工作,设计最主要的工作时职责分配。
    实现:
        相对简单。
       
13. iBATIS(MyBatis)一个数据持久化矿建
    将SQL转移到了配置文件中,每个SQL有唯一的ID.
    在程序里面通过ID来调用SQL语句
    能自动将传入的对象(及对象中的属性值)设置到SQL语句的动态参数上
    能够将查询结果集自动转换为我们需要的对象(某个实体对象,或集合对象等)
    能方便的生成动态SQL语句(比如根据查询条件不同,SQL语句也要不同)
    能方便的获得某个实体对象的关联对象(或集合)
   
14. 利用apache-commons-beanutils自动将请求中的参数拷贝到实体对象中,并自动完成数据类型的转换,并自动完成数据类型的转换。
    有的时候,一个穿过来的request有很多的参数,这个时候自己再去转换就比较麻烦。
    这里面最重要的方法是:BeanUtils.copyProperty(entity, name, value[0]);

15. ThreadLocal设计模式在分页查询中的应用
    主要是为了去掉分页参数的传输
    所谓的分页就是要从浏览器向服务器传递分页参数,这个分页参数主要包括offset,某一页要从第几行开始查询,每页显示多少行这种分页参数。
    避免了从action传到service再到dao,可以直接到dao。
    他其实是维护着Map这个数据结构。他内部就是个Map。
   
16. 服务器端include技术
    网页中可能包含很多页面快,用servlet一块一块的找可能比较困难,用服务器端include技术把一个servlet include进来,每个部分负责自己的业务。

17. HTTPHEAD中referer应用(网站前台的登录)
    发起请求的页面在哪个页面,就留在哪个页面。
    response.sendRedirect(request.getHeader("referer"));
   
18. 客户端js表单验证
    在表单里面定义一个onSubmit事件
   
19. 了解ckEditor的使用
    在页面里面编写一些富文本的文章

20. 利用commons-fileupload上传附件
    页面的表单一定要通过method=post, 编码类型定义为enctype="multipart/form-data"
    这个时候通过request.getParameter()是拿不出值的,只能获取inputStrean,从那个里面提取相关的信息。
   
21. 如何对multipart表单编码类型进行封装处理
    主要通过decorate设计模式处理
   
22. 了解HttpClient和HtmlParser在网页爬虫中的使用
    HttpClient就是对http请求的一个封装,自己来扮演一个浏览器的角色,自己来发起http请求。
    htmlParser可以针对网页的信息提取信息。
   
23. 了解Log4J

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值