BBY-Java笔记第一篇

依赖注入体现
在spring配置文件中配置如下:
<bean id="smsReceCtrl" class="newcom.com.cn.ctrl.impl.SmsDataAnalysisImpl" scope="prototype">
    <property name="smsDao" ref="smsDao"/>
</bean>
在SmsDataAnalysisImpl中定义变量smsDao,并实现setSmsDao(注意:通过ApplicationContext获取smsReceCtrl实例时要获取其接口的实例)。
JAVA变量的命名规范规定变量只能以$、_、和字母开头,如String  _$123 = “QQ”;
java中变量的长度
boolen,8位1个字节
int,32位,4个字节
float,32位 4个字节
double,64位8个字节
char 16位,2个字节
byte 8位1个字节
short 16位 2个字节
long 64位 8个字节

Invalid byte 3 of 3-byte UTF-8 sequence异常
主要是io读取或写入时,字符无法解析所抛出的错误,可以使用setEncoding("UTF-8")设置流的编码。
读取XML文件:
InputSource source = new InputSource(xmlPath);
source.setEncoding("UTF-8");
读取文件,使用构造函数:
InputStreamReader(InputStream in, CharsetDecoder dec);
详细出处参考:http://www.itqun.net/content-detail/225764.html

Java类构造自身实例由于可以直接使用自身方法和变量(通常是非静态的),所以构造方法应该是非静态的,返回时用return this;构造其他类实例时可用静态方法。
网络项目三层结构:表现层/业务逻辑层/数据访问层
Html,js,ajax,css/servlet,ejb,javabeans/
JSP页面由HTML代码和嵌入其中的Java代码所组成,Jsp主要是表现层技术,当然也可以写业务逻辑;主要特点:一次编写,到处运行,系统的多平台支持。
JSP网页在三层架构中的地位
在B/S架构应用模式中,必须仔细地看待由在这三层架构中:
[01]网页处于最顶层,代表着浏览器,或者说是客户端网页动态内容和静态内容的解释器。我们知道,动态网页中的服务端代码都会被转换成HTML网页,在这个网页中包含有HTML代码,以及可以实现客户端动态效果和交互功能的客户端脚本代码,它们共同来实现数据的呈现。
[02]最底层是应用程序中的原始数据,动态内容依赖于这些数据,一般就是指数据库。
[03]中间件是用来执行数据(业务)逻辑运算的组成元件,对于Java,这个组成元件是JSP网页、Servlet、EJB、JavaBeans和Java类等文件编译而成的类文件(*.class)等,它们都可以进行业务逻辑运算。
JVM(Java虚拟机)是Java的运行环境,而EJB、JavaBeans和Java类等文件是架构在其上的业务逻辑运算组件,这些运算组件可以将部分业务逻辑从JSP网页中分离出来,并形成一个一个的运算单元。并且,不管是EJB,还是JavaBeans,都是应用多种技术编译而成的Java类。
JSP网页可以与这些组件通讯,并可以将数据使用HTML语言呈现出来。在前面的一节,我们已经介绍了怎样使用JSP网页结合Java类。但是,如果需要将数据持久的话,我们就必须使用一种特殊的Java类,这就是JavaBeans

Socket通信总结
服务器端:建立ServerSocket(只需端口),监听客户端请求(accept-阻塞);
客户端:建立socket,本地InetSocketAddress,远程InetSocketAddress,绑定本地的(socket.bind()-本地端口随意),监听远程的(socket.connect()-阻塞)。

彩信类媒体容器MMContent可以包含MMContent
由类型、内容构成(图片内容为路径字节流,文本内容为字符串)

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

Myeclipse下修改工程发布名:
右键点击项目-->Properties-->MyEclipse-->Web将Web Context-root内的名称更改成项目名;
HttpRequest对象
URL:http://localhost:8080/manage/chongqing/index.html
URI:/manage/chongqing/index.html

JAVA的switch类型
char
int
byte
short
Java去警告
@SuppressWarnings("unused")
@SuppressWarnings("unchecked")
@SuppressWarnings("serial")

Java角度计算
int x1=0,x2=30; //点1坐标;
int y1=30,y2=0; //点2坐标
int x=Math.abs(x1-x2);
int y=Math.abs(y1-y2);
double z=Math.sqrt(x*x+y*y);
int jiaodu=Math.round((float)(Math.asin(y/z)/Math.PI*180));//最终角度

java.lang.OutOfMemoryError: PermGen space异常处理
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。


Web.xml中常用配置
<!-- Spring 配置 -->
<listener>   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:./applicationContext.xml</param-value>
</context-param>

<!-- Filter 配置 -->
<filter>
<filter-name>WebReqPro</filter-name>
<filter-class>newcom.com.cn.web.RequestFilter</filter-class>
<init-param>
<!-- 只提供两种调用方式:DataBase、WebService -->
<param-name>CallType</param-name>
<param-value>DateBase</param-value>
</init-param>
</filter>
<filter-mapping>
    <filter-name>WebReqPro</filter-name>
    <!-- <url-pattern>/chongqing/index.html</url-pattern> -->
    <url-pattern>/chongqing/*</url-pattern>
</filter-mapping>

<!— Cxf 配置文件引入 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:./applicationContext.xml,
WEB-INF/jaxws.xml
</param-value>
</context-param>

<!-- WebServices配置(Cxf) -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

<!-- 服务初始化 -->
<servlet>
<servlet-name>GZ_TrafficInit</servlet-name>
<servlet-class>
newcom.its.web.init.GZ_TrafficInit
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

<!—WebServices配置(xfire) -->
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

<!-- Struts2配置-->
<listener>
<listener-class>com.amtium.server.listener.ServerContextListener</listener-class>
</listener>
<filter>
    <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

iBatis调用
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");

SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();

String time = “”;
List<DataSmsCustom> list = sqlMapper.queryForList("Select_TrafficSms_Task", time);

<!-- 路况彩信,查询指定时刻的定制记录 -->
<select id="Select_TrafficMms_Task"  parameterClass="java.lang.String" resultMap="queryResult">
select id, inDate, serviceID, mobile, content, time, flag from its_SmsCustom_tbl t where serviceID=2 and flag=1 and time=#time# order by serviceID, content, id
</select>

网站
Myeclipse下安装svn
http://wlh269.javaeye.com/blog/702429
Eclipse实用快捷键大全
http://hi.baidu.com/nb13/blog/item/fcd4354433b78384b2b7dcf0.html
反编译jad安装
http://www.javachen.com/2010/05/myeclipse-8-5_jad_installer_method/

你可能感兴趣的:(java,Web,jsp,MyEclipse,socket)