JavaWeb开发基础学习

本文详细介绍了JavaWeb开发中的关键技术,包括Servlet、JSP、JDBC等基础组件的使用方法及最佳实践,深入探讨了MVC设计模式下各组件如何协同工作,并提供了数据库连接管理和事务处理的具体案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.      web开发概述

①    cmd查看程序占用端口: netstat –ano

②    window操作系统的默认dns配置 system32/drivers/etc/hosts

 

2.      Servlet快速入门

①    一般情况下serverlet中的doget请求和dopost请求的处理方式是一样的,所以可以如下处理:

Public void doGet(…){

}

Public void doPost(…){

doGet(…) }

②    在多线程中,一个对象的成员变量是存在线程安全的,但是成员方法中的内部变量是没有线程安全问题的!

③    线程锁尽量只锁住核心代码,使得解锁的等待时间尽量短

④    ServerContext代表当前的web应用

⑤    一个web应用可以有多个serverlet

⑥    类加载器只是从类加载的地方加载相应的资源

⑦    二进制码和字节码都是使用的一套编码方式(如:utf-8、gbk、),字节码在网络传输的时候最终还是被编码成二进制码

⑧    所有的请求头和相应头中都不能包含中文

⑨    浏览器默认支持url编码的解释,

 

3.      jsp入门

①    jsp类似于aps的前置技术,jsp允许在html中镶嵌java代码

 

4.      JSP_include指令_九大隐式对象

①    servletContert (application)

session(session)

request(request)

pageContext(当前jsp页面)

page(this)当前的serlet类

5.      自定义标签开发

①    自定义标签的作用就是对  自定义标签体中的html内容进行 灵活的控制!

②    自定义标签的使用就行要避免在jsp中直接出现java代码块

 

6.      javaweb开发模式_mvc设计思想

①    runtimeException的异常是不需要处理和向上抛出的。除此之外,其他异常都需要处理和抛出!

②    请求转发(request)发送到jspà转发到相应的serverletàserverlet中接受的request与jsp接收的request一致,然后再serverlet中进行处理

③    Request后服务器端的  反馈可以有两种方式: 

a.直接使用response、header等在原有页面上(刷新为回填内容),如:

Response.getWrite.write(“…”)

 

b.使用dispatch 返回一个jsp页面(使用该jsp对现有web窗口进行刷新),如:

Request.getRequestDispatch(“regeister.jsp”).

 

7.      JDBC快速入门

①    class.forName(“driver”)//是导入类的字节码(就是将类加载到内存中)

②    反射的原理就是将类的代码载入内存(相当于第一次加载类)

③    Function ( )throw exception  //方法可以直接向上抛出异常

Try…catch//不抛出异常,而是将其捕获

④    config.proertiesà配置文件

⑤    类的单例模式:

Public classDaoFactory{

   Private static DaoFactory factory=newDaoFactory();

   Private DaoFactory(){  }

}

⑥    runtimeException抛出后,上层不会接收,而是直接抛给虚拟机,结束当前线程!

⑦    Session是对于一台机子的多个浏览器而言

⑧     

a.转发:一次请求,一次相应,不可以改变地址栏,如果资源跳转时,如果要使用request域带一些参数过去,使用请求转发

b.重定向:2次请求,2次响应,可以改变地址栏,如果要改变地址栏,使用重定向

如果都可以使用转发,减少服务器的访问压力

 

8.      元数据

①@Test-->可以测试类中的类方法和类的静态方法, 然后使用JUnit Test

③    class<T> clazzà可以特指泛型的类型对象,如:cusDao.class  ,

上述可以理解为如果将类的类型对象作为参数的话,,类的类型对象的形参类型只能指定为class<T> clazz这种方式

④    一个web应用在运行期间只能有一个数据源,如:new CombopooleaDataSource  //只能有一个

⑤    敏捷开发是从 需求向底层进行的:serverlet中调用service的接口à实现service接口类-à实现dao接口à实现到接口

⑥    Request.getRequestDispatcher-à进行转发的原理是:request让a.jsp响应,但是a.jsp把响应原封不动的转给b.jsp(当然在转发的过程中可以在request域中添加新数据)

⑦    C标签和自定义标签都是对html标签内容(inner )进行控制的

⑧    Dao中只能写与数据库操作有关系的东西

⑨    数据库批量处理的sql要使用事务,eg:

Try {

Conn.setAutoCommit(false)  //A点

For(String id : ids){

   Dao.delCustByWithTrans(conn,id);

}

DbUtils.commitAndCloseQuetly(conn);   }  //如果批处理成功,则commit提交

Catch(Exception e){

 DbUtils.rollbackAndCloseQueitly(conn);  //否则回滚A点

Throw new RunntimeException(e);}

 

9.      .监听器

①    map的key是根据key的hashcode来决定否是是同一个对象,从而决定是否覆盖还是添加,所以可以重写key对象的hascode和equal方法

 

10.  过滤器_基础

①    增强for循环只能迭代值,不能修改值

②    Redirect相当于重新request,但是请求转发不是(相当于还在同一个request的请求链中)

③    一个用户如果登录某个jsp时,session为空,或者session无标记,那么就是第一次登录

④    不同的数据由md5进行加密时,会得到不同的128位的二进制文件,相同的数据会得到相同的md5

⑤    Md5只能加密,不能解密

 

11.  泛型

①    public  static <T> void (T a) //<T>泛型在使用之前一定要声明

②    <T> 中的T可以在任何出现实际类型的地方,都可以出现!如: int[ ] –>  T[ ]

③    注解可以在一定程度上替代配置文件

④    动态代理改变已经存在类中的方法,(类可以是jar中的已经编译的文件)

⑤    装饰器方法—>对接口A中的实现类B进行继承,以便控制A中什么方法被保留,什么方法被复写

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值