admin 发表于 2011-03-04 15:19 浏览次数:
在JSP页面中,有一个按钮,作用是,返回到上一页,在页头写了一个函数,代码如下:
<SCRIPT language=JavaScript>
function back()
{
history.back();
}
</SCRIPT>
在按钮中,如下写:
<input type= "button " name= "Button " value= http://topic.csdn.net/u/20070307/10/"返回 " onclick= "back() ">
但是在运行时,却不能返回到上一页,希望各位能者可以解答这个问题
admin 发表于 2011-03-04 15:19 浏览次数:
用的是HttpSessionListener 代码如下
public class SessionListener implements HttpSessionListener {
// 所有登录人员
private static Vector<UserSession> v = new Vector<UserSession>();
// 非重复登录人员
private static Map<String, UserSession> map = new HashMap<String, UserSession>();
public void sessionCreated(HttpSessionEvent se) {
}
public static void createsession(HttpSessionEvent se) {
UserSession user = (UserSession) se.getSession().getAttribute(SupperConstants.USER_SESSION_KEY);
if (!v.contains(user)) {
v.add(user);
}
}
public void sessionDestroyed(HttpSessionEvent se) {
UserSession user = (UserSession) se.getSession().getAttribute(SupperConstants.USER_SESSION_KEY);
if (null != user && v.contains(user)) {
v.removeElement(user);
// 并移除相同的sessionID
removeSameSession(user.getSessionId());
}
}
public static void Destroysession(UserSession user) {
if (v.contains(user)) {
v.removeElement(user);
// 并移除相同的sessionID
removeSameSession(user.getSessionId());
}
}
/** 移除相同的sessionId
* @param sessionId
*/
private static void removeSameSession(String sessionId) {
if (null != v && !v.isEmpty()) {
for(int i=0;i <v.size();i++){
UserSession user = v.get(i);
if(sessionId.equals(user.getSessionId())){
v.remove(i);
i–;
}
}
}
}
public static Vector<UserSession> getV() {
return v;
}
public static void setV(Vector<UserSession> v) {
SessionListener.v = v;
}
public static Map<String, UserSession> getMap() {
Map<String, UserSession> userMap = new HashMap<String, UserSession>();
for (UserSession user : getV()) {
userMap.put(user.getOperatorName(), user);
}
setMap(userMap);
return map;
}
public static void setMap(Map<String, UserSession> map) {
SessionListener.map = map;
}
}
登录方法中 调用
request.getSession().setAttribute(SupperConstants.USER_SESSION_KEY, userSession);
SessionListener.createsession(new HttpSessionEvent(request.getSession()));
退出方法中调用
UserSession userSession = (UserSession)request.getSession().getAttribute(SupperConstants.USER_SESSION_KEY);
request.getSession().removeAttribute(SupperConstants.USER_SESSION_KEY);
SessionListener.Destroysession(userSession);
在本机测试通过,放到外网上,隔10天的用户还存在,不知道怎么回事?
admin 发表于 2011-03-04 15:19 浏览次数:
- Java code
-
public static String[] match(String original,int start, String begin, String end) {
Pattern pat = Pattern.compile(begin+"((?:.|\n|\r)*?)"+end); //? 跟在限定字符后,非贪婪模式
Matcher mat = pat.matcher(original);
mat.region(start, original.length());
if(mat.find()){
logger.info(mat.group(0) +" start:"+mat.start()+" end:"+mat.end()+" count:"+mat.groupCount());
return new String[]{mat.group(1),String.valueOf(mat.start()),String.valueOf(mat.end())};
}
return null;
}
public static void main(String[] args){
match(getTestStr(), 0, "<tr class=\"GridItem\" nowrap=\"nowrap\">", "</tr>");
}
其中getTestStr()方法读取一个html文件返回其字符;当begin + group(0) + end有853个字符时,就抛出内存溢出的异常
想问下这种情况怎么解决,或者什么开源项目能够解决
主要工作是从html解析提取指定标签 之间的内容,感觉如果使用indexof方式会比较繁琐
- Java code
-
Exception in thread "main" java.lang.StackOverflowError
at java.lang.Character.codePointAt(Character.java:2335)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344)
at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$LazyLoop.match(Pattern.java:4357)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4078)
admin 发表于 2011-03-04 15:18 浏览次数:
web.xml过滤器配置如下:
<!– session过滤器 过滤后台页面 –>
<filter>
<filter-name>accessControl </filter-name>
<filter-class>com.test.SessionFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>accessControl </filter-name>
<url-pattern>/admin/* </url-pattern>
</filter-mapping>
<!– session过滤器 过滤action .do的提交–>
<filter>
<filter-name>ActionControl </filter-name>
<filter-class>com.test.SessionFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>ActionControl </filter-name>
<url-pattern>*.do </url-pattern>
</filter-mapping>
我用struts框架作了个网站,为了防止别人进入后台操作数据库,我用session过滤器过滤了后台的所有页面,已经成功完成,但发现如果直接在页面地址栏里输入action的提交比如:/news_search.do就会查找到我的后台数据,进行删除,修改操作。过滤JSP页面是可以用 <url-pattern>/admin/* </url-pattern> 来过滤admin文件夹侠的所有JSP页面,过滤action时以用 <url-pattern>*.do </url-pattern>就过滤了所有.do的提交,这样前台也无法使用了,怎么样写能只过滤后台的.do提交呢?我这样写有错 <url-pattern>/admin/*.do </url-pattern>。该怎么写呢?请高手指教
admin 发表于 2011-03-04 15:18 浏览次数:
目前项目项目需要,打印一个web页面,但是我需要选择自己定制的模板打印出来。。。。
请教,高手帮忙,急。。。。
admin 发表于 2011-03-04 15:18 浏览次数:
现在想实现这么一个功能?
用js calendar日期组件 点击后只有 星期一 星期三 可供选择,其余为灰色 如何设定?
admin 发表于 2011-03-04 15:18 浏览次数:
admin 发表于 2011-03-04 15:18 浏览次数:
admin 发表于 2011-03-04 14:51 浏览次数:
public static void test() {
try {
String url = "http://172.7.128.128/services/ClientService?wsdl";// 提供接口的地址
String soapaction = "http://webservice.cms.hikvision.com"; // 域名,这是在server定义的
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url));
QName qn = new QName(soapaction, "getAllEmapInfo");
call.registerTypeMapping(EmapInfoReq.class, qn,
new BeanSerializerFactory(EmapInfoReq.class, qn),
new BeanDeserializerFactory(EmapInfoReq.class, qn)); //注册自己定义的类
call.registerTypeMapping(EmapInfoResult.class, qn,
new BeanSerializerFactory(EmapInfoResult.class, qn),
new BeanDeserializerFactory(EmapInfoResult.class, qn)); //注册自己定义的类
call.setOperationName(new QName(soapaction, "getAllEmapInfo"));// 设置要调用哪个方法
call.addParameter(
new QName(soapaction, "emapInfoReq"), // 设置要传递的参数
org.apache.axis.encoding.XMLType.SOAP_INT, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(new QName(soapaction, "getAllEmapInfo"),
CommonResult.class);// 要返回的数据类型(自定义类型)
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapaction + "getAllEmapInfo");
// String ret = (String) call.invoke(new Object[]
// {"北京"});//调用方法并传递参数
final CommonResult commonResult = (CommonResult) call
.invoke(new Object[] { "222" });// 调用方法并传递参数
System.out.println(commonResult.toString());
} catch (Exception e) {
e.printStackTrace();
System.out.println("webservice调用异常:" + e.getMessage());
}
这边的 call.addParameter 的第2个参数 我想传入自己定义的类型的参数 请问要怎么写?
admin 发表于 2011-03-04 14:51 浏览次数:
我用的stuts2 和spring
struts-config.xml 中代码
<action name="login" class="com.crm.action.UserAction" method="login">
<result>/main.jsp</result>
<result name="input">/login.jsp</result>
<result name="allException">/exception.jsp</result>
</action>
action中 代码
private UserManagerService userManagerService;
public void setUserManagerService(UserManagerService userManagerService) {
this.userManagerService= userManagerService;
}
spring-service.xml中代码
<bean id="userManagerService" class="com.crm.service.UserManagerServiceImpl">
web.xml中代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
action中可以自动得到 userManagerService接口 的实现类
第一个问题是 他是怎么自动得到具体实现类的呢,?是不是和struts2-spring-plugin-2.0.14.jar 包有关系?我记得原来我用spring时都是HelloSerivce service=(HelloSerivce)factory.getBean(HelloSerivce.SERVICE_NAME); 这种方式得到呢,这是不是spring2 的新特性 还是stuts2 的新特性,能说清楚下吗?
第二个问题
另外一个例子 是在struts-config.xml 中添加
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value=http://topic.csdn.net/u/20100826/18/"/WEB-INF/applicationContext.xml" />
</plug-in>
stuts2 是不是不需要这么添加,直接用struts2-spring-plugin-2.0.14.jar 包代替吗?
admin 发表于 2011-03-04 14:50 浏览次数:
The value for the useBean class attribute bean.DB is invalid.
做了个JSP页面
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>防伪系统</title>
</head>
<jsp:useBean id="mybean" class="bean.DB"/>
<body>
<% request.setCharacterEncoding("gb2312");
String sql="select * from content";
if(request.getParameter("numb")!=null){
sql+=" where title like ‘%"+request.getParameter("numb")+"%’";
}
if(request.getParameter("numbs")!=null && !request.getParameter("numbs").equals("")){
sql+=" where title = ‘"+request.getParameter("numbs")+"’";
}
ResultSet rs=mybean.executeQuery(sql);
%>
<table width="1090" border="0" cellpadding="0" cellspacing="0" align="center">
<!–DWLayoutTable–>
<tr>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#0099FF">
<!–DWLayoutTable–>
<form id="form1" name="form1" method="post" action="">
<tr>
<td height="33" colspan="2" align="left" valign="middle" bgcolor="#98C6D1"> 按标题模糊查询:<input type="text" name="numb"></input> <input type="submit"></input></td>
</tr>
</form>
<form id="form2" name="form2" method="post" action="">
<tr>
<td height="33" colspan="2" align="left" valign="middle" bgcolor="#98C6D1"> 按标题精确查询:<input type="text" name="numbs"></input> <input type="submit"></input></td>
</tr>
</form>
<tr>
<td height="33" colspan="2" align="left" valign="middle" bgcolor="#98C6D1"> 我的内容列表</td>
</tr>
<%while(rs.next()){%>
<tr>
<td height="33" align="left" valign="middle" bgcolor="#D0E2F0">标题:<%=rs.getString("title")%></td>
</tr>
<tr>
<td height="33" align="left" valign="middle" bgcolor="#FFFFFF"> 内容:<%=rs.getString("content")%></td>
</tr>
<%
}
%>
</table></td>
</tr>
</table>
</table>
</form>
</body>
</html>
只是想页面查询 显示数据库数据
bean.DB 是一个数据库连接类,
然后启动TOMCAT后,开网页就报这么个错
看网上说一定要SET GET 方法,是这样吗。。
admin 发表于 2011-03-04 14:50 浏览次数:
location.href=http://topic.csdn.net/u/20110303/09/"target.jsp?pageNum=1&keywords=哈哈";
target.jsp 页面用 ${param.keywords} 接收keywords的值,英文中文都好用,没有乱码,但是如果值是带有 # % & + 这几个符号就会接不到值
admin 发表于 2011-03-04 14:50 浏览次数:
例子如:登录,如果第一次输入不合法的信息后,第二次却再也登入不了了。就算输入正确的信息,也不能通过!并且我刷新页面时,错误信息确一直增加。
login.jsp
- Java code
-
<s:form action="valLogin" theme="simple" namespace="/non-member" >
<table width="100%" border="0" cellpadding="0" cellspacing="1" class="inputbox">
<tr>
<td width="25%" align="center" class="inputHeader">用户名:</td>
<td width="23%" align="center" class="inputContent">
<s:textfield name="member.mnickname" size="20"/>
</td>
</tr>
<tr>
<td align="center" class="inputHeader">密 码:</td>
<td align="center" class="inputContent">
<s:password name="member.mpassword" size="20"/>
</td>
</tr>
<tr>
<td align="center" class="inputContent">
<s:reset value="重填"/>
<s:submit value="登录"/>
</td>
</tr>
<tr>
<td colspan="2">
<font color="red"><s:fielderror></s:fielderror>
</font>
</td>
</tr>
</table>
</s:form>
MemberAction-valLogin-validation.xml
- Java code
-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!--校验规则定义的根源素-->
<validators>
<validator type='stringlength'>
<param name="fieldName">member.mnickname</param>
<param name="minLength">1</param>
<param name="maxLength">10</param>
<message>用户名称长度为${minLength}到${maxLength}之间</message>
</validator>
<validator type="requiredstring">
<param name="fieldName">member.mnickname</param>
<message>用户名不能为空</message>
</validator>
<validator type='stringlength'>
<param name="fieldName">member.mpassword</param>
<param name="minLength">4</param>
<param name="maxLength">10</param>
<message>密码长度为${minLength}到${maxLength}之间</message>
</validator>
<validator type="requiredstring">
<param name="fieldName">member.mpassword</param>
<message>密码不能为空</message>
</validator>
</validators>
struts.xml
- Java code
-
<action name="valLogin" class="memberAction" method="login">
<result name="input">/non-member/login.jsp</result>
<result name="success">/member/home.jsp</result>
</action>
admin 发表于 2011-03-04 14:50 浏览次数:
我有string = 20110302 string1 = 20110228 string2 = 20110218 string3 = 20110219 string4 = 20110227 string5 = 20100301
通过jsp 把当前时间7天前的字串得到
最终筛选打印出
string2 = 20110218 string3 = 20110219 string5 = 20100301
小弟初学 线等 代码
admin 发表于 2011-03-04 14:50 浏览次数:
<result name="login">/login.jsp</result>
admin 发表于 2011-03-04 14:49 浏览次数:
做了一个网站,首页是动态从数据库加载的,由于内容比较多,加载的时候比较慢,所以现在想把首页从动态变成静态的,首页加载速度就会较快,求详解……
admin 发表于 2011-03-04 14:49 浏览次数:
admin 发表于 2011-03-04 14:49 浏览次数:
请问,Gt-Grid可以在页面对JAVA时间类型进行格式化输出吗
admin 发表于 2011-03-04 14:49 浏览次数:
想了解一下这个技术.谁有相关的资料或者连接?
也希望和您交流.
admin 发表于 2011-03-04 14:49 浏览次数:
刚到公司,拿到项目,导入项目,打开MyEclipse把tomcat架上访问,默认页面时登陆
不过登陆页面的action是这么写
<FORM name="main" action="/main.action" method=post>
前面加个斜杠不是调转到根目录区了么,每次一点提交就到http://localhost:8080/mian.action,就报错404
手动修改,把action里main.action前面的"/"去掉就可以正常提交
不过还有很多类似页面,我想想一个一个设置
我应该从哪里设置呢???高手帮帮忙.