JavaBean:
<jsp:useBean id="expManager" scope="page" class="com.dao.ExpertManager"></jsp:useBean>
<% request.setCharacterEncoding("gb2312");%>
<jsp:setProperty property="*" name="expManager"/>
Request:
服务器的地址(格式为:http://200.222.211.135:8088/example)
String url = request.getProtocol().substring(0, 4).toLowerCase() + "://" + request.getLocalAddr() + ":" + request.getLocalPort() + request.getContextPath();
System.out.println("request.getProtocol():"+request.getProtocol()); >>>>>>HTTP/1.1
返回请求使用的协议。可以是HTTP1.1或者HTTP1.0。
System.out.println("request.getRemoteHost():"+request.getRemoteHost()); >> 本机ip(客户机)
获取发出请求的客户端IP地址。
【补充:】
原来是用的tomcat4.0-b1,用request.getRemoteHost()是可以返回客户端机器名称的?
但是现在升级成了tomcat5.0.28之后,getRemoteHost和getRemoteAddr返回的都是机器的IP地址了?
这个tomcat的bug吗?
-------------------------解决方法-------------------------------
server.xml里设置enableLookups="true",例如:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
------------------------------------------------------------------
System.out.println("request.getLocalAddr():"+request.getLocalAddr()); >>服务器ip
获取响应请求的服务器端地址。
System.out.println("request.getLocalPort():"+request.getLocalPort()); >>服务器端口号
获取响应请求的服务器端端口
System.out.println("request.getContextPath()"+request.getContextPath()); >>服务器工程根目录
jsp页面中获取毫秒需要引入包:
<%@ page import=" java.util.Calendar"%>
int ms = Calendar.getInstance().get(Calendar.MILLISECOND); // 0..999
获取毫秒时间(基本不会存在相同值,可以作为临时文件名)
import java.util.Date;
Date d = new Date();
long longtime = d.getTime();
System.out.println("logtime:"+longtime);
输出为:logtime:1225627132046
******************************************************************
【乱记-未整理】
********字符串类型转换为整数类型************
UserRight=Integer.parseInt(pdb.getString("UserRight",1));
********数组传参的获取**********************
String[] delType=request.getParameterValues("isDel");
********JAVA中的时间日期的操作*************
<%@ page import="java.util.Date"%>
java.util.Date().toLocalString() 方法在一些机子上可以通过,有些则报错,请高手帮忙
>>>>>>>>>>>>>>呵呵这个方法已经不提倡使用了,你最好换一换 DateFormat.format(Date date)
pstmt.setDate(6, java.sql.Date.valueOf(birthDay)); //库中字段的类型为 datetime
String curdate= new SystemTime().getDateTime();
//------------------------------------------------------------获取当前日期
<%@ page import="java.util.Date"%>
<%@ page import="java.text.SimpleDateFormat" %> //需要的包
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化
Date date=new Date();
String curdate=format.format(date); //获取当前年月日,如2007-06-14
//--------------------------------------------------------------------------
*********从session中取出用户的id************
<%= session.getAttribute("sesUserNameCn").toString() %>
String userNameCn = session.getAttribute("sesUserID").toString();
*********在jsp中最好动态定义脚本所需要的参数*************
<%
if(flag == true)
{
msg="邮件发送成功!";
}
else
{
msg="邮件发送失败!";
}
%>
<SCRIPT LANGUAGE="JavaScript">
alert("<%=msg%>");
window.location.href="<%=url%>";
</SCRIPT>
*****************Request取参数的时候非空判断*************************
String shouquan=request.getParameter("shouquan")==null?"":request.getParameter("shouquan");
**********************************************************************
**********************try和catch的写法************************
try
{
lNum = Integer.parseInt(linkNum);
}
catch (Exception e)
{
e.printStackTrace();
}
***********************{数据类型转换}*****************************
java中数据类型转换
1、如何将字串 String 转换成整数 int?
A. 有两个方法:
1). int i = Integer.parseInt("String"); 或 i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
注: 字串转成 Double, Float, Long 的方法大同小异.
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
注: Double, Float, Long 转成字串的方法大同小异.
>>>小窍门“将int类型装换成string类型”,制药这样处理就行了(intAttachID+"")也就是在int类型的数据后面加上空格
************//动态select选项设置*//*************************
<select name="c_type" size="1" id="c_type">
<%
strSql="select * from TCustomType";
pdb.getQuery(strSql,1);
while (pdb.next(1))
{
%>
<option value="<%= pdb.getString("customtypeid",1)%>" <%=pdb.getString("customtypeid",1).equals(cType)?"selected":""%>><%= pdb.getString("customtypename",1) %></option>
<%
}
pdb.close();
%>
</select>
*******************/*Eclipse中运行带参数的程序*/*************************
//中文版:
1、打开“运行”菜单,点击“运行(N)...”按钮,进入运行配置界面。
2、在左侧选择要运行的程序,然后点击右侧“(x)=自变量”标签,在下面的“程序自变量(A):”文本框中输入程序运行需要的参数,多个参数以空格分开即可。
3、点击下面的“运行(R)”按钮运行程序。
//英文版:
1、打开“Run”菜单,点击“Run...”按钮,进入运行配置界面。
2、在左侧选择要运行的程序,然后点击右侧“(x)=Arguments”标签,在下面的“Program arguments:”文本框中输入程序运行需要的参数,多个参数以空格分开即可。
3、点击下面的“Run”按钮运行程序。
//在菜单【运行】-运行,打开配置运行对话框,选择配置里面的Java应用程序,在右面的(x)=自变量里面,
//有个程序自变量,输入你的运行参数,多个参数以空格分开即可----如下
"D:\Tomcat 5.0\webapps\dayo" "E\dir.rar"
*******************输出的内容格式化*****************************
System.out.println('\n'+""+'\n'+"耗用时间(秒) : "+(end-start)/1000+" "+'\n'+ "-----压缩完毕!!!");
**********************java中的转义字符2007-8-12***************************************
//java中的转义字符,将C:\Documents and Settings\Administrator\My Documents中的 "\" 转换成可识别的 "\"
ddddd.replace("\\","\\\\")
------------------------------------------------
\n 回车(\u000a)
\t 水平制表符(\u0009)
\b 空格(\u0008)
\r 换行(\u000d)
\f 换页(\u000c)
\' 单引号(\u0027)
\" 双引号(\u0022)
\\ 反斜杠(\u005c)
\ddd 三位八进制
\udddd 四位十六进制
上周发现还有其它需要转义的字符,例如
String sName = "Java转义字符(补遗)";
sName = sName.replaceFirst("(补遗)","");
out.println(sName);
如果你以为会输出“Java转义字符”,那你就错了,事实上输出“Java转义字符()”,我也很奇怪,以为是中英文括号的问题,可是并不是,我不确定是否转义问题,解决方法是
sName = sName.replaceFirst("\\(补遗\\)","");
-----------------------------------------------
Java 的转义字符
今天查阅了一些资料,看到了一些代码,深刻的发现了自己的基础知识是多么的不牢固,所以决定把今天的事情记录下来给自己一个提醒。这段代码是这样的:
private final static String str =
"\1\4\1\5\1\6\1\7\1\10\1\4\1\11\1\12"+
"\1\13\1\14\1\15\1\4\1\16\1\17\1\20\1\21"+
"\2\4\1\17\4\4\1\22\12\4\1\22\1\23\1\24"+
"\1\0\14\25\1\26\6\25\27\0\1\10\1\27\11\0"+
"\1\21\16\0\1\30\24\0\1\17\4\0\1\17\4\0"+
"\1\21\12\0\1\21\7\0\1\22\12\0\1\22\3\0";
开始的时候看了半天没明白这是什么意思,只知道是转义字符,但是经常见到的转义字符都是\t,\n,\r等,没见过"\"后面带一个或两个数字的,赶紧Google一下转义字符,这才查到"\ddd"是将 ASCII 字符匹配为八进制数(最多三位),这才恍然大悟,原来"\1"是"\001","\12"是"\012",都是八进制数。哎,都是基础知识不扎实的结果,因为不太常用而忽略了。
结果......
学习了!
-----------------------------------------------
**********************************************************
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例来实现。
字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享它们。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
下面给出了一些如何使用字符串的更多例子:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
***************//正则表达式技术***************************
-----------------------------------------------
//我是在google中输入一下内容后,搜索到解决办法的:
//org.apache.jasper.JasperException: Unexpected internal error near index 1
-----------------------------------------------
使用下面方法
trace.replaceAll("\\","\\\\");
出现如下错误
org.apache.jasper.JasperException: Unexpected internal error near index 1
\
^
-----------------------------------
(1) 用证则的话,用四个"\"代替一个"\"
两个给语言本身转义,两个给正则类转义 .
-------------------------------------
(2) 如果不用正则表达式
str.replaceAll("\\\\","\\\\\\\\");
--------------------------------------
(3) 例:
String str="aa\\aa暗暗\\啊";
Pattern p = Pattern.compile("\\\\"); //要将字符串中的”\\“替换
Matcher m = p.matcher(str); //要替换哪个字符串
System.out.println(m.replaceAll("\\\\\\\\")); //替换成”\\\\“
****************************************************************
-------------------------------------------------------------
//*********************[如何打JAR包]*************************
1、首先必须保证能够执行Jar命令,一般安装完jdk之后,该命令在Java\jdk1.5.0_01\bin下,将这个路径设置到系统环境变量path当中。(可以通过配置我的电脑属性中的环境变量来设置,也可以进入控制台用set path=%path%;newpath来设置)。
2、一般如果希望打包之后双击执行还要配置好classpath,将.(注意是一个点)和Java\jre1.5.0_01\lib。
3、还必须制作好一个清单文件,里面标明主类(也就是main函数所在类),该文件是文本文件,名字随便,比如叫list.txt;内容如下:
Main-Class: xxxx
注意几点:
1)Main-Class有大小写区别;
2)之后是一个冒号,后面是一个空格,一定注意,多了少了都不对;
3)之后是类的名字,没有.class扩展名;
4)如果是package的话,需要指明路径:xxx.xxx.xxx
5)之后是回车换行,而且之后只能是一个空行,什么都不要有。呵呵
4、一切准备就绪了,我们开始打包,执行命令:
jar cvfm test.jar list.txt *.class
好了,如果顺利已经生成了test.jar包了,双击可以执行了。
-------------------------------------------------------------------------
*********************//jar执行外部.exe文件//******************************
public class DeskCpl
{
public static void main(String[] args)
{
Runtime rt = Runtime.getRuntime(); //这里要注意
//System.out.println(rt.freeMemory());
//System.out.println(rt.totalMemory());
try
{
//rt.exec("calc"); //运行windows下的计算器程序
//rt.exec("regedit"); //运行注册表编辑器
//rt.exec("control color"); //windows的桌面调节属性
rt.exec("D:\\Program Files\\QQ\\QQ.exe"); //执行QQ程序
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
***********************************************************************
-----------------获取客户端的IP地址------------------------------------
String cip = request.getRemoteAddr();
--------------------WinXP-SP2/19.168.0.214-----------------------------------------
getLocalHost
public static InetAddress getLocalHost()
throws UnknownHostException返回本地主机。
如果有安全管理器,则使用本地主机名和 -1 作为参数来调用其 checkConnect 方法,以查看是否允许该操作。如果不允许该操作,则返回表示回送地址的 InetAddress。
返回:
本地主机的 IP 地址,如“WinXP-SP2/19.168.0.214”。
抛出:
UnknownHostException - 如果找不到 host 的任何 IP 地址。
另请参见:
SecurityManager.checkConnect(java.lang.String, int)
#####*********************打WAR包***************************************
在命令提示行下 进入文件所在目录然后输入
jar -cvf web.war *.*
中 web.war就是打包后生成的文件名称
*.* 就是目录下所有文件(包括WEB-INF目录下的文件)
你应该是想要在 EBA Weblogic中运行JSP吧
#####*************************************************************************
-----执行关联删除(即删除主表信息,同时删除与之相关的表中的信息)--------
String sqls[ ]=new String[3]; //定义数组
String sql="delete WorkPlan where PlanNO = '"+planNum+"'";
String sqlAnx = "delete PlanAnnex where PlanID='"+planNum+"' ";
String sqlOpn = "delete ReadOpinion where PlanID='"+planNum+"' ";
sqls[0] = sql;
sqls[1] = sqlAnx;
sqls[2] = sqlOpn;
if(sqls.length>0)
{
for(int i=0;i<sqls.length;i++)
{
System.out.println("sql"+i+"="+sqls[i]);
pdb.update(sqls[i]); //执行删除
}
msg="删除成功!";
}
#####*************************StringBuffer的使用************************************
------StringBuffer的使用
StringBuffer powerStr = new StringBuffer();
powerStr.append(",");
-----------------------------------------------
psSqls = "select ReadManID,ReadManName from ReadOpinion where PlanId ="+planNum;
pdb.getQuery(psSqls,1);
while(pdb.next(1))
{
readIds.append(pReadManId=pdb.getString("ReadManID",1));
readIds.append(",");
readNames.append(pReadManName=pdb.getString("ReadManName",1));
readNames.append(",");
}
String[] reads1 = readIds.toString().split(",");
String[] reads2 = readNames.toString().split(",");
for(int i=0;i<reads1.length;i++)
{
readIds2.append(reads1[i]);
if(i<reads1.length-1)
{
readIds2.append(",");
}
readNames2.append(reads2 [i]);
if(i<reads1.length-1)
{
readNames2.append(",");
}
}
System.out.println(readIds2);
System.out.println(readNames2);