-
./表示当前目录 ../表示源文件所在目录的上一级目录 ../../表示源文件所在目录的上上级目录,以此类推. 表单与超链接中访问一个action,若此action的namespace为空或者"/",则不需要写上action的绝对路径,可以直接写action的名称即可以访问到action.否则要加上<%=request.getContextPath%> jsp文件使用<img src="">加载图片时,src开头不用加/,默认就是项目的根目录. 但在css应用图片时,需要加上图片的准确位置. 例:background-image:url('../../images/admin.png');查看全部
-
项目结构分层查看全部
-
Struts2配置中的package标签. package节点是整个配置的核心部分. 每个package,从语义上讲,其实代表了每一个独立的模块.在这个模块中,你可以定义隶属于这个模块的行为方式,而与其他的模块没有关系. 所以每个package都有独立的interceptor、result-type和action的定义,绝大多数的Runtime配置定义都是通过package节点实现的. package中的属性和子节点. 1.name name属性为每个package设置一个唯一的标识,这个标识在所有的package定义中不能重复. 2.abstract 标识这个package的定义是一个抽象定义,也就是允许他仅包含声明式的定义,而不需要在package定义中包含action的定义. 3.extends 通过使用extends,可以指定本package继承另外一个package的所有的配置,当某个package继承了另外一个package的所有配置,那么你就无需对父package中已经声明过的配置定义做再次的定义. 同时如果重复定义父package中已声明过的配置定义,那么这些重复定义声明将覆盖父package中的相关定义. 4.namespace namespace(命名空间)的作用:对于action配置进行逻辑划分. 如果我们不为package节点指定namespace,Struts2默认使用一个空字符串作为默认的namespace. 当然也可以使用"/"等字符串来表示namespace. 定义package命名空间,该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action 此处为了体现模块化的编程思想,<package>标签的name属性定义为users,与users文件夹同名,在users文件夹中存放jsp文件.查看全部
-
Struts2的Action中接收jsp提供的参数:查看全部
-
私有的构造方法,保证单例模式.查看全部
-
可以自定义一个所有Action类的父类,该类不做任何数据处理.并且继承ActionSupport类与实现ServletContextAware、ServletRequestAware、ServletResponseAware接口来分别获取application、request、response对象.session对象由request对象获取. 其他Action类直接继承自定义的Action父类即可,在类中就可以直接使用application、session、request、response对象. 父类中private修饰的属性不会被子类继承,因此此处SuperAction使用protected修饰属性,使用public修饰类,为了让子类可以继承该属性.查看全部
-
项目分层查看全部
-
四个架包查看全部
-
过滤器查看全部
-
struts接受表单数据的三种方式查看全部
-
try{ } catch(Exception e) { } finally{ } 无论程序是否出错,都会执行finally中的代码.查看全部
-
源生jdbc的sql语句使用占位符: String sql="select * from user where username=? and password=?" 使用PreparedStatement预编译对象的setString(index,value)方法设置字符串的参数,下标从0开始. Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection(url,user,password); PreparedStatement pre=conn.prepareStatement(sql); pre.setString(1,"admin"); pre.setString(2,"password"); ResultSet result=pre.executeQuery(); while(result.next()){ //通过字段名获取字段值,ResultSet接口中存放查询到的对象. result.getString("username"); result.getString("password"); .. }查看全部
-
hql语句使用占位符为hql语句传参的方法: String hql="from Users where username=? and password=? ; Session session =sessionFactory.openSession(); Query query=session.createQuery(hql); //通过Query接口中的setParameter(index,value)方法为hql语句设置参数.下标从0开始. query.setParameter(0,"admin"); query.setParameter(1,"password"); List list=query.list(); 使用参数名称绑定,为Hql语句传递参数的方法: 在HQL语句中定义命名参数要用:开头,后面跟上参数变量名.最后使用setType的方法为这变量赋值. String hql="from Users where username=:username and password=:password ; Session session =sessionFactory.openSession(); Query query=session.createQuery(hql); query.setString("username","name"); query.setString("password","password"); List list=query.list();查看全部
-
<!-- C3P0的配置,直接配置在cfg.xml上 --> (可选) <!-- 最大连接数 --> <property name="hibernate.c3p0.max_size">10</property> <!-- 最小连接数 --> <property name="hibernate.c3p0.min_size">5</property> <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 --> <property name="hibernate.c3p0.acquire_increment">2</property> <!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒--> <property name="c3p0.idle_test_period">2000</property> <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 --> <property name="hibernate.c3p0.timeout">2000</property> <!-- 最大的PreparedStatement的数量 --> <property name="hibernate.c3p0.max_statements">10</property> 可以输出Connection对象,看是哪种类型,如果是c3p0则显示:com.mchange.v2.c3p0.. session.doWork(new Work(){ public void execute(Connection arg0) throws SQLException { System.out.println(arg0); }查看全部
-
hibernate4与hibernate5获取服务注册对象的方法不一样. hibernate4:new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); hibernate5:new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build(); hibernate5中没有ServiceRegistryBuilder()对象. Hibernate整合C3P0实现连接池方法. 首先导入3个jar包 c3p0-0.9.2.1.jar hibernate-c3p0-4.2.5.Final.jar mchange-commons-java-0.2.3.4.jar 然后在cfg.xml配置文档中配置: <property name="connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property> connection.provider_class属性用于指定Hibernate的连接提供方式,如果没有将不会使用c3p0作为Hibernate的连接池,配置好后Hibernate就会自动使用C3P0代替内置的连接池了. 不同版本的hibernate-c3p0-x.Final.jar包对应的C3P0ConnectionProvider类未必一样查看全部
举报
0/150
提交
取消