心得小结

sqlserver插入数据的时候需要开启 

SET IDENTITY_INSERT [dbo].[表名] ON

整合Spring4+hibernate4;
1,开启注解扫描
2,配置数据源bean
3,注册sessionFactory(配置hibernate属性,以及一些方言)
4,开起事务

使用eclipse创建maven项目,
1,右击创建,选择maven project
2,选择工作区,然后Artifact Id选择cocoon-22-archetype-webapp或者选择maven-archetype-quickstart
3,填写group id 和artifact id (artifact id 类名)
4,创建完成。

javax.servlet.ServletException: File "/error.jsp" not found
表示没有这个字段,是字段问题


path中的
/**的意思是所有文件夹及里面的子文件夹
/*是所有文件夹,不含子文件夹
/是web项目的根目录,即webapp目录


有两个类:
package com.beijing.hehe;


public class TestShi {
 private String testShi = "testshi";
 public TestShi(){
 System.out.println("testshi的构造方法");
 }
 @Override
 public String toString() {
 System.out.println(testShi);
 System.out.println("调用testshi的tostring");
 return null;
 }
}
package com.beijing.hehe;


public class TestShiLiHua {
 private int a;
 private l>
 private String c ;
 private TestShi t;
// private TestShi t2 = new TestShi();
 public TestShiLiHua(){
 System.out.println(a+"  b:"+b+"  c:"+c+" t:"+t
// +"    t2:"+t2
 );
 }
 public static void main(String[] args) {
 TestShiLiHua ts = null;
// ts = new TestShiLiHua();
 }
}
如代码所示,该代码执行结果为没有输出。
加上ts = new TestShiLiHua();输出结果为:0  b:0  c:null t:null
在此基础上再加上t2成员变量以及t2打印;输出结果为:
testshi的构造方法
testshi
调用testshi的tostring
0  b:0  c:null t:null    t2:null。




Jquery
一、
$(function(){ ...... })是jquery里面的,是当DOM文档载入完毕就执行的意思,


等效于$(document).ready(function(){ ......  }) ,优于window.onload


二、
$(function () {
       $("[data-toggle='popover']").popover();
 });
页面加载完成获取所有data-toggle=‘popover’的标签,可以获取到任何具有这个属性的标签,很好用。


三、
$("input:hidden")可以获取到type=“hidden”  和style=“display:none”的input;


其中$("input:hidden").show()对于display:none的标签有效,
显示用hide(),页面中均没有预留位置


四、
获取指定属性元素的标签
$("input[type='checkbox']")
五、循环
$("[class='sdfsdfsdf']").each(function(){
    alert($(this).val());
}) 
$.each($("[class='sdfsdfsdf']"),function(){
    alert($(this).val());
})
该示例中的this为DOM对象,$(this)则为jQuery对象。




jQuery.each(object, [callback])


通用例遍方法,可用于例遍对象和数组。


不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:


$(selector).each(function(index,element))


参数 描述
function(index,element)
必需。为每个匹配元素规定运行的函数。




spring中引入其它相关spring的xml配置文件
<import resource="applicationContext-shiro.xml"/>该目录为src下面的根目录




页面引入
<link href="/pco/static/plugins/uniform/css/uniform.default.css" rel="stylesheet" type="text/css"/>


<style type="text/css">
</style>


<%@ page c %>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="dyna" tagdir="/WEB-INF/tags/dyna" %>
<%@ taglib prefix="dict" tagdir="/WEB-INF/tags/dict" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<c:set var="sctx" value="${pageContext.request.contextPath}/${site.path}"/>


循环
function jumpurl(){
 window.location.href="${sctx}/workorder/show?currentId="+${currentId};
};
setTimeout('jumpurl()',5000);




String类型进行比较,如果一个String是"",它可以使用==、equals、isEmpth,如果是null,使isEmpty会报空指针,可以使用==和equals,如果不是这俩种情况,==比较符不能使用,结果永远是false。
如果定义一个字符串=null,那么这个字符串就是null。
String中      
 A.equals(B)详解: 
1,如果A为null,会报空指针;
2,B无论为何值,均不会报错,   
3,比较是否为null,用==进行比较
4,A和B中任何一值为“”均不会报错,
5,比较“”值时,用== ,equals和isEmpty()方法效果一样,如果为null,调用isEmpty()方法会报空指针异常


总结,equals比较时,A不能为Null,==比较时,双边都可以为Null,isEmpty()被值为Null对象调用会报空指针


延伸,null值不能调用方法,调用方法会报空指针异常


创建一个引用变量后 A a = new A(); 如果对象中的属性未被赋值时,可以调用该属性,不会报空指针





  
 多对多
     @JsonIgnore
 @ManyToMany
     @JoinTable(name = "manager_join_role", 
     joinColumns = @JoinColumn(name = "user_id"),        注:该类的id 
     inverseJoinColumns = @JoinColumn(name = "role_id")) 注:list泛型对象类型的id
 private List<Role> roles = Lists.newArrayList();
 一对多
 @JsonIgnore
 @ManyToOne(fetch=FetchType.LAZY)
 @JoinColumn(name="team_id")
 private Team team;




工学081200计算机科学与技术


继承问题:
子类继承父类,不管是父类引用还是子类引用指向子类,该对象getClass()均为子类,instanceof 父类  子类
  父类引用指向父类,该对象getClass()为父类 instanceof 父类


 
<select name="car" id="customerSelector" class="m-wrap">
<opti }${m.car.platesNum }">请选择</option>
<c:forEach items="${cars }" var="c">
<opti <c:if test="${c.id eq m.car.id}">selected="true"</c:if>>${c.vehicleBrand}${c.platesNum}</option>
</c:forEach>
</select>


null : ${sdfsdfsdf }</br>
1:${sdfsdfsdfsdf eq '' }</br>
2:${sdfsdfsdfsdf eq null }</br>
对应网页结果为
 null : 
1:false
2:true


所有大中型应用都要涉及到
持久化管理persistent
事务管理transaction management
权限管理privilege management
日志管理logging
调试管理debugging


关于aop的几个重要基本概念
切面aspect
连接点joinpoint
通知advice
切入点pointcut
目标对象target object
aop代理aop proxy
编织weaving




支持2中代理:jdk的动态代理和cglib实现机制
aop一般还需要aopalliance-1.0.jar和aspectjweaver-1.5.3.jar(JoinPoint和ProceedingJoinPoint)


<!-- 启动对@AspectJ注解的支持 -->
<aop:aspectj-autoproxy/>  


关于使用aop还是拦截器来进行日志管理不进行讨论,只讨论如何使用aop,


一般人们常说aop拦截不到controller,那是因为没有使用cglib,而是使用的jdk,在mvc配置文件中添加如下注解,就可以拦截到controller了。
<!--  开启AOP注解配置,proxy-target-class=true表示强制采用CGLIB技术生成代理类 -->
  <aop:aspectj-autoproxy proxy-target-class="true"/>




jstl表达式中进行比较不需要对是否非空进行判断


Controller中添加model 


model.addAttribute("nullTest", null);
model.addAttribute("spaceTest", "");




oracle数据库的特点
oracle支持大数据库、多用户的高性能的事务处理
oracle遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准
实施安全控制和完整性控制:数据加密、数据校对、第三方认证服务...
支持分布式数据库和分布式处理
完全向上兼容,具有可移植性(零移植风险)、可兼容性和可持续性
全球化、跨平台的数据库
支持多平台,应用与平台无关MS Windows(NT、2000、2003、XP) Unix(SCO 、Solaris 、AIX、HP-UX、Tru64...)Linux(Redihat  SuSE)
从两层到多层模式
解释:向上兼容,数据库里面的数据完全可以一直到更高版本的数据库里面
安装与配置10g
mysql是通过数据库进行管理的,oracle是通过用户来管理的
在mysql有多个数据库,在oracle中只有一个数据库




mysql max_allowed_packet 设置过小导致记录写入失败
mysql根据配置文件会限制server接受的数据包大小。


有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。


查看目前配置


show VARIABLES like '%max_allowed_packet%';


显示的结果为:


+--------------------+---------+


| Variable_name      | Value   |


+--------------------+---------+


| max_allowed_packet | 1048576 |


+--------------------+---------+  


以上说明目前的配置是:1M


 


修改方法


1、修改配置文件


可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。


max_allowed_packet = 20M
如果找不到my.cnf可以通过


mysql --help | grep my.cnf
去寻找my.cnf文件。


linux下该文件在/etc/下。


2、在mysql命令行中修改


在mysql 命令行中运行


set global max_allowed_packet = 2*1024*1024*10
然后退出命令行,重启mysql服务,再进入。


show VARIABLES like '%max_allowed_packet%';
查看下max_allowed_packet是否编辑成功


 
 注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。




exec sp_attach_db 'bebtrelease1','g:\bebtrelease.mdf','g:\bebtrelease_log.ldf'  sqlserver




睡眠函数
  function sleep(numberMillis) { 
 var now = new Date();   
 var exitTime = now.getTime() + numberMillis;     
 while (true) {        
 now = new Date();       
 if (now.getTime() > exitTime)    
 return;    
 }
  }




Absolute,CSS中的写法是:position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的做标原始点为原始点。如果设定TRBL并且父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由TRBL决定。


父div样式position:relative;
子div样式margin: auto;position: absolute;top: 0;bottom: 0;left: 0;right: 0;




winname = window.open('', "_blank",'');
bdhtml=window.document.body.innerHTML; 
sprnstr="<!--startprint-->"; 
eprnstr="<!--endprint-->"; 
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); 
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); 
winname.document.body.innerHTML=prnhtml;
winname.print(); 






给textarea赋值
function parts(){
 var s = $("#questionParts").val();
 document.getElementById('questionParts').innerText=s;
 };


check选中的值
 function selectValue(id) {
 var str = "";
 $("input[name=" + id + "]:checkbox").each(function() {
 if ($(this).attr("checked")) {
 str += $(this).val() + ","
 }
 })
 return str;
 }




<context:property-placeholder location="classpath*:config/*.properties"/>
<property name="driverClassName" value="${jdbc.driver}" />




<script>
function jumpurl(){
 alert(2);
 locati "http://www.baidu.com";
};
setTimeout('jumpurl()',2000);
</script>


json.append("id\":\"").append(attendanceRecordEntity.getId()).append("\",");
 json.append("\"xh\":\"").append(attendanceRecordEntity.getXh()).append("\",");
 json.append("\"name\":\"").append(attendanceRecordEntity.getName()).append("\",");
 json.append("\"kcbh\":\"").append(attendanceRecordEntity.getKcbh()).append("\",");
 json.append("\"normalsk\":\"").append(attendanceRecordEntity.getNormalsk()).append("\",");
 json.append("\"normalxk\":\"").append(attendanceRecordEntity.getNormalxk()).append("\",");
 json.append("\"kcmc\":\"").append(attendanceRecordEntity.getKcmc()).append("\",");


StringUtils
org.apache.commons.lang3.StringUtils;



1. public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是str==null或str.length()==0
下面是StringUtils判断是否为空的示例:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在StringUtils中空格作非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false


4. public static boolean isNotBlank(String str)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,等于!isBlank(String str)
下面是示例:
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("/t /n /f /r") = false
StringUtils.isNotBlank("/b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true


5. public static String trim(String str)
去掉字符串两端的控制符(control characters, char <= 32),如果输入为null则返回null
下面是示例:
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" /b /t /n /f /r ") = ""
StringUtils.trim(" /n/tss /b") = "ss"
StringUtils.trim(" d d dd ") = "d d dd"
StringUtils.trim("dd ") = "dd"
StringUtils.trim(" dd ") = "dd"


6. public static String trimToNull(String str)
去掉字符串两端的控制符(control characters, char <= 32),如果变为null或"",则返回null
下面是示例:
StringUtils.trimToNull(null) = null
StringUtils.trimToNull("") = null
StringUtils.trimToNull(" ") = null
StringUtils.trimToNull(" /b /t /n /f /r ") = null
StringUtils.trimToNull(" /n/tss /b") = "ss"
StringUtils.trimToNull(" d d dd ") = "d d dd"
StringUtils.trimToNull("dd ") = "dd"
StringUtils.trimToNull(" dd ") = "dd"


7. public static String trimToEmpty(String str)
去掉字符串两端的控制符(control characters, char <= 32),如果变为null或"",则返回""
下面是示例:
StringUtils.trimToEmpty(null) = ""
StringUtils.trimToEmpty("") = ""
StringUtils.trimToEmpty(" ") = ""
StringUtils.trimToEmpty(" /b /t /n /f /r ") = ""
StringUtils.trimToEmpty(" /n/tss /b") = "ss"
StringUtils.trimToEmpty(" d d dd ") = "d d dd"
StringUtils.trimToEmpty("dd ") = "dd"
StringUtils.trimToEmpty(" dd ") = "dd"


8. public static String strip(String str)
去掉字符串两端的空白符(whitespace),如果输入为null则返回null
下面是示例(注意和trim()的区别):
StringUtils.strip(null) = null
StringUtils.strip("") = ""
StringUtils.strip(" ") = ""
StringUtils.strip(" /b /t /n /f /r ") = "/b"
StringUtils.strip(" /n/tss /b") = "ss /b"
StringUtils.strip(" d d dd ") = "d d dd"
StringUtils.strip("dd ") = "dd"
StringUtils.strip(" dd ") = "dd"


9. public static String stripToNull(String str)
去掉字符串两端的空白符(whitespace),如果变为null或"",则返回null
下面是示例(注意和trimToNull()的区别):
StringUtils.stripToNull(null) = null
StringUtils.stripToNull("") = null
StringUtils.stripToNull(" ") = null
StringUtils.stripToNull(" /b /t /n /f /r ") = "/b"
StringUtils.stripToNull(" /n/tss /b") = "ss /b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"


10. public static String stripToEmpty(String str)
去掉字符串两端的空白符(whitespace),如果变为null或"",则返回""
下面是示例(注意和trimToEmpty()的区别):
StringUtils.stripToNull(null) = ""
StringUtils.stripToNull("") = ""
StringUtils.stripToNull(" ") = ""
StringUtils.stripToNull(" /b /t /n /f /r ") = "/b"
StringUtils.stripToNull(" /n/tss /b") = "ss /b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"


JDBC
加载驱动类Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
链接url       String url =“----------”;
获取连接    C DriverManager.getConnection("url";"username";"password");


查询结果
执行sql接收结果
 PreparedStatement pStatement = conn.prepareStatement(sql);
 ResultSet rs = pStatement.executeQuery();
 while(rs.next()){
 }
更新数据库
 Statement stat =conn.createStatement();
 stat.executeUpdate(sql);


 json转string


 import net.sf.json.JSONObject;
  public void jsonTest(){
  String s ="{'a':'123','b':'321'}";
  JS JSONObject.fromObject(s);
  String sa = jsonObject.getString("a");
  String sb = jsonObject.getString("b");
  System.out.println(sa);
  System.out.println(sb);
 }




  获取今天是星期几
  String str[]={"7","1","2","3","4","5","6"};  
        Calendar rightNow=Calendar.getInstance();  
        int day=rightNow.get(rightNow.DAY_OF_WEEK);//获取时间
        System.out.println(day);
        System.out.println("今天是"+str[day-1]);
 
   用时时分秒
   q.setComplateTime(new Date());
 l q.getComplateTime().getTime()-q.getReciveTime().getTime();
 l time / (1000 * 60 * 60 * 24);  
   l (time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);  
   l (time % (1000 * 60 * 60)) / (1000 * 60);  
   l (time % (1000 * 60)) / 1000; 
   if(days != 0){
      q.setUseTime(days+"天"+hours+"时"+minutes+"分"+seconds+"秒");
   }else if(hours !=0){
      q.setUseTime(hours+"时"+minutes+"分"+seconds+"秒");
 }else if(minutes != 0 ){
 q.setUseTime(minutes+"分"+seconds+"秒");
 }else {
 q.setUseTime(seconds+"秒");
 }


jstl


执行该语句的时候重定向
<c:redirect url="/manager/profile" />




  
 在浏览器中下载poi中HSSFWorkbook文件(xls)
 HSSFWorkbook hfw = exportDataUtil.exprotAttendRecord(lists);
  response.setContentType( "application/x-msdownload");
  response.setHeader("Content-disposition", "attachment;filename=attendRecord.xls");
               hfw.write(response.getOutputStream());
  response.getOutputStream().flush();
               response.getOutputStream().close();




js中的if判断,如果条件为if(“”)和if(null)为false,if(!“”)和if(!null)为true




背景图片平铺浏览器,
style="background:url('http://img.bss.csdn.net/201603081553174243.png') no-repeat;background-size: cover;"




正则表达式验证
private static boolean getEmail(String line){  
    Pattern p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");  
    Matcher m = p.matcher(line);  
    return m.find();  
}




mysql
SHOW VARIABLES LIKE '%query_cache%'




加载并获取properties文件值
@1创建Properties对象
Properties ps = new Properties();


@2将properties文件转换为输入流
InputStream in = new BufferedInputStream(new FileInputStream("jdbc.properties"));
ps:要强调一下这里的路径问题,FileInputStream默认路径的开始位置是在项目文件夹下面,如果放在src的根目录下,那么路径就应该写为 src/jdbc.properties


@3properties加载输入流即可完成加载properties文件内容
ps.load(in);


此时Properties类型对象ps已经可以获取到jdbc.properties文件中的值
调用方法ps.getProperties(属性名),可以获取到类型为String的属性值




发送邮件
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>


package com.bebt.yyxy.test;


import java.util.Properties;


import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;




public class Test {
 public static void main(String[] args) throws MessagingException{
 // 配置发送邮件的环境属性
        final Properties props = new Properties();
        /*
         * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host /
         * mail.user / mail.from
         */
        // 表示SMTP发送邮件,需要进行身份验证
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", "smtp.163.com");
        // 发件人的账号
        props.put("mail.user", "zghbswx@163.com"); 
        // 访问SMTP服务时需要提供的密码
        props.put("mail.password", "111111q1");


        // 构建授权信息,用于进行SMTP进行身份验证
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 用户名、密码
                String userName = props.getProperty("mail.user");
                String password = props.getProperty("mail.password");
                return new PasswordAuthentication(userName, password);
            }
        };
        // 使用环境属性和授权信息,创建邮件会话
        Sessi Session.getInstance(props, authenticator);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(mailSession);
        // 设置发件人
        InternetAddress form = new InternetAddress(
                props.getProperty("mail.user"));
        message.setFrom(form);


        // 设置收件人
        InternetAddress to = new InternetAddress("496393672@qq.com");
        message.setRecipient(RecipientType.TO, to);


//        // 设置抄送
//        InternetAddress cc = new InternetAddress("luo_aaaaa@yeah.net");
//        message.setRecipient(RecipientType.CC, cc);
//
//        // 设置密送,其他的收件人不能看到密送的邮件地址
//        InternetAddress bcc = new InternetAddress("aaaaa@163.com");
//        message.setRecipient(RecipientType.CC, bcc);


        // 设置邮件标题
        message.setSubject("测试邮件");


        // 设置邮件的内容体
        message.setContent("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><a href='http://www.baidu.com'>测试的HTML邮件</a>", "text/html;charset=UTF-8");


        // 发送邮件
        Transport.send(message);
    }
 }




地址栏访问的时候好像会在地址栏末尾默认添加正斜杠,比如说访问http://www.baidu.com。真正访问的时候浏览器或者说服务器应该是服务器会在地址后面添加"/"。这样好像就相当于是两次网络请求。所以访问的时候最好在地址栏末尾添加正斜杠。
html中的title属性是访问网址的时候的标题,如果不写,标题栏是路径名称。




使用sql查询select,如果没有找到,在java里面的表现形式返回值为null




块级元素与行内元素


在做页面布局的时候,一般会将html元素分为两种,即块级元素和行内元素。


一、块级元素:block element 
每个块级元素默认占一行高度,一行内添加一个块级元素后无法一般无法添加其他元素(float浮动后除外)。两个块级元素连续编辑时,会在页面自动换行显示。块级元素一般可嵌套块级元素或行内元素;
块级元素一般作为容器出现,用来组织结构,但并不全是如此。有些块级元素,如<form>只能包含块级元素。其他的块级元素则可以包含 行级元素如<P>.也有一些则既可以包含块级,也可以包含行级元素。
DIV 是最常用的块级元素,元素样式的display:block都是块级元素。它们总是以一个块的形式表现出来,并且跟同级的兄弟块依次竖直排列,左右撑满。


二、行内元素:inline element 
也叫内联元素、内嵌元素等;行内元素一般都是基于语义级(semantic)的基本元素,只能容纳文本或其他内联元素,常见内联元素 “a”。比如 SPAN 元素,IFRAME元素和元素样式的display : inline的都是行内元素。例如文字这类元素,各个字母 之间横向排列,到最右端自动折行。


三、block(块)元素的特点
①、总是在新行上开始;
②、高度,行高以及外边距和内边距都可控制;
③、宽度缺省是它的容器的100%,除非设定一个宽度。
④、它可以容纳内联元素和其他块元素


四、inline元素的特点
①、和其他元素都在一行上;
②、高,行高及外边距和内边距不可改变;
③、宽度就是它的文字或图片的宽度,不可改变
④、内联元素只能容纳文本或者其他内联元素


对行内元素,需要注意如下 
设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的。


五、常见的块状元素 
address – 地址
blockquote – 块引用
center – 举中对齐块
dir – 目录列表
div – 常用块级容易,也是CSS layout的主要标签
dl – 定义列表
fieldset – form控制组
form – 交互表单
h1 – 大标题
h2 – 副标题
h3 – 3级标题
h4 – 4级标题
h5 – 5级标题
h6 – 6级标题
hr – 水平分隔线
isindex – input prompt
menu – 菜单列表
noframes – frames可选内容,(对于不支持frame的浏览器显示此区块内容
noscript – 可选脚本内容(对于不支持script的浏览器显示此内容)
ol – 有序表单
p – 段落
pre – 格式化文本
table – 表格
ul – 无序列表


六、常见的内联元素 
a – 锚点
abbr – 缩写
acronym – 首字
b – 粗体(不推荐)
bdo – bidi override
big – 大字体
br – 换行
cite – 引用
code – 计算机代码(在引用源码的时候需要)
dfn – 定义字段
em – 强调
font – 字体设定(不推荐)
i – 斜体
img – 图片
input – 输入框
kbd – 定义键盘文本
label – 表格标签
q – 短引用
s – 中划线(不推荐)
samp – 定义范例计算机代码
select – 项目选择
small – 小字体文本
span – 常用内联容器,定义文本内区块
strike – 中划线
strong – 粗体强调
sub – 下标
sup – 上标
textarea – 多行文本输入框
tt – 电传文本
u – 下划线


七、行内元素与块级元素有什么不同? 
区别一:
块级:块级元素会独占一行,默认情况下宽度自动填满其父元素宽度
行内:行内元素不会独占一行,相邻的行内元素会排在同一行。其宽度随内容的变化而变化。 
区别二:
块级:块级元素可以设置宽高
行内:行内元素不可以设置宽高 
区别三:
块级:块级元素可以设置margin,padding
行内:行内元素水平方向的margin-left; margin-right; padding-left; padding-right;可以生效。但是竖直方向的margin-bottom; margin-top; padding-top; padding-bottom;却不能生效。 
区别四:
块级:display:block;
行内:display:inline;
可以通过修改display属性来切换块级元素和行内元素


java的web项目,通过在地址栏输入   ip:port/项目名称    该路径默认访问的是WebRoot,如果找不到相应页面,则从web.xml里面寻找。
页面如果不放在WEB-INF中,是可以直接通过url访问的页面的。





function shanchu(userId){
    $.ajax({
    url:"delete.do",
    type:"post",
    data:{id:"userId"},
    dataType:"json",
    success:function(result){
    if(result.del==1){
    $(".table").empty();
    alert("删除成功");
    
    
    }else{
    alert("删除失败");
    }
    },
    error:function(){
    alert("删除a败");
    }
    });
    }


myeclipse创建Spring项目
1,创建web project
2,添加Spring配置文件,默认目录src下,命名“applicationConfig.xml”
3,导入jar包spring-core  spring-beans spring-expression spring-context    和 commons-logging
Spring MVC项目
在此基础上导入jar包spring-web 和spring-webmvc
web.xml配置如下
<?xml versi encoding="UTF-8"?>
<web-app versi>
 xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocati>
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <--DispatcherServlet前端控制器配置-->
 <servlet>
 <servlet-name>springmvc</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<--指定spring的配置文件-->
 <init-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>classpath:spring-mvc.xml</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet-mapping>
 <servlet-name>springmvc</servlet-name>
 <url-pattern>*.form</url-pattern>
 </servlet-mapping>


  <display-name></display-name> 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
spring配置文件为
url请求映射表
<util:properties id="urlMappings">
 <prop key="/hello.form">helloController</prop>
 </util:properties>
控制器bean配置
 <bean id="helloController" class="com.tarena.controller.HelloController"></bean>
定义视图解析器
 <bean id="viewResolver" 
 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/jsp/"></property>
 <property name="suffix" value=".jsp"></property>
 </bean>
web.xml中配置解决中文乱码
<filter>
 <filter-name>encodingFilter</filter-name>
 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 <init-param>
 <param-name>encoding</param-name>
 <param-value>UTF-8</param-value>
 </init-param>
 </filter>
 <filter-mapping>
 <filter-name>encodingFilter</filter-name>
 <url-pattern>*.form</url-pattern>
 </filter-mapping>


HttpServletRequest中的getParamerter获取的是表单中的name属性,不是id属性,如果用此方法获取id,则值为null;获取name,默认为“”;
jsp传到java中文乱码问题:是中间件tomcat默认编码是ISO-8859-1;页面传递过来的编码和tomcat解码格式不一样导致乱码。


oracle服务
按照windows 7 64位 安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:
 
1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
 
2. OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
 
3. OracleJobSchedulerORCL:Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)
 
4. OracleMTSRecoveryService:服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
 
5. OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。 (非必须启动)
 
6. OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动,下面会有详细详解)。
 
7. OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
 
那么在开发的时候到底需要启动哪些服务呢?
 
对新手来说,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQL Developer等第三方工具的话,OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
 
注:ORCL是数据库实例名,默认的数据库是ORCL,你可以创建其他的,即OracleService+数据库名。


listener和service对应的参数文件:product\版本号\db1\network
\admin  listener.ora和tnsnames.ora
这两个东西定义数据库是怎么连接的
tnsping IP




mybatis中的resultMap中result的jdbcType要写成大写,小写会报错

index - 选择器的 index 位置
element - 当前的元素(也可使用 "this" 选择器)










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值