struts2+json=ajax |
web |
|
/**
* 通过部门编号获取部门信息
* @param deptid
*/
public List<Emp> findEmpByByDeptID(int deptid) {
Session session=Template.getSession();
String hql = "select emp from Emp emp left join fetch emp.dept where emp.dept.deptid='"+ deptid + "'";
Query query = session.createQuery(hql);
List<Emp> emps = query.list();
session.close();
return emps;
}
public String findEmpBydeptID() {
emps=this.getEmpservice().findEmpByByDeptID(dept.getDeptid());
JSONArray jsonarray=new JSONArray();
jsonarray.put(emps).toString();
return "success";
}
<package name="emp" extends="json-default">
<action name="findemp" class="com.chinasoft.action.EmpAction" method="findEmpBydeptID">
<result type="json">
<param name="excludeProperties">empservice</param>
</result>
</action>
</package>
$(function(){
$("#dept").change(function(){
var $dval=$(this).val();
$.getJSON("<%=path%>/emp/findemp.action?dept.deptid="+$dval,function(data){
var strHTML='<select name="" id="ddd"><option value="">--请选择--</option>';
$.each(data.emps,function(i,v){
strHTML+='<option value="'+v.empid+'">"'+v.empname+'"</option>';
})
strHTML+='</select>';
$("#emp").html(strHTML);
})
})
})
|
servlet+json=ajax 2 |
web |
|
public List<Dept> getDept2() {
List<Dept> deptList = new ArrayList<Dept>();
Connection conn = Template.getConnection();
PreparedStatement prestmt = null;
ResultSet rs = null;
String sql = "select * from dept";
conn = super.getConnection();
try {
prestmt = conn.prepareStatement(sql);
rs = prestmt.executeQuery();
while (rs.next()) {
Dept dept = new Dept();
dept.setDeptid(rs.getInt(1));
dept.setDeptname(rs.getString(2));
dept.setDeptdesc(rs.getString(3));
deptList.add(dept);
}
} catch (SQLException e) {
e.printStackTrace();
}
return deptList;
}
public void show2(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/json");
List<Dept> deptList = this.getDepttest().getDept2();
JSONArray jsonArray = new JSONArray();
for(int i=0;i<deptList.size();i++){
JSONObject object = new JSONObject();
try {
object.put("deptid", deptList.get(i).getDeptid());
object.put("deptname", deptList.get(i).getDeptname());
object.put("deptdesc", deptList.get(i).getDeptdesc());
jsonArray.put(object);
} catch (JSONException e) {
e.printStackTrace();
}
}
response.getWriter().print(jsonArray.toString());
}
<script type="text/javascript">
$(function(){
var html = "<table><tr><td>编号</td><td>部门名称</td><td>部门描述</td> <td>操作</td><tr>";
$.getJSON("<%=path%>/servlet/DeptShowServlet.do?method=show",function(data){
$.each(data,function(i,v){
html += "<tr><td>"+v.deptid+"</td><td>"
+v.deptname+"</td><td>"
+v.deptdesc+"</td><td><a href=\"http://www.baidu.com\">删除</a></td></tr>";
});
html+="</table>";
$("#main").html(html);
})
})
</script>
|
servlert+json=ajax 1 |
web |
|
/**
* 查询数据
*
* @return
*/
public String getDept() {
Connection conn = Template.getConnection();
PreparedStatement prestmt = null;
ResultSet rs = null;
JSONArray array = new JSONArray();
String sql = "select * from dept";
conn = super.getConnection();
try {
prestmt = conn.prepareStatement(sql);
rs = prestmt.executeQuery();
while (rs.next()) {
JSONObject object = new JSONObject();
object.put("deptid", rs.getString(1));
object.put("deptname", rs.getString(2));
object.put("deptdesc", rs.getString(3));
array.put(object);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return array.toString();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.setContentType("text/json");
String method = request.getParameter("method");
if (method.equals("show")) {
this.show(request, response);
}
}
public void show(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.print(this.getDepttest().getDept());
}
<script type="text/javascript">
$(function(){
var html = "<table><tr><td>编号</td><td>部门名称</td><td>部门描述</td><td>操作</td><tr>";
$.getJSON("<%=path%>/servlet/DeptShowServlet.do?method=show",function(data){
$.each(data,function(i,v){
html += "<tr><td>"+v.deptid+"</td><td>"
+v.deptname+"</td><td>"
+v.deptdesc+"</td><td><a href=\"http://www.baidu.com\">删除</a></td></tr>";
});
html+="</table>";
$("#main").html(html);
})
})
</script>
|
Spring配置文件2 |
web |
|
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/laohutu"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.hbm2ddl.auto">
update
</prop>
<prop key="hibernate.show_sql">
true
</prop>
<prop key="hibernate.format_sql">
true
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/hutu/po/Dept.hbm.xml</value></list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="deptProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"></property>
<property name="target" ref="deptservice"></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="deptdao" class="com.hutu.dao.DeptDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="deptservice" class="com.hutu.service.DeptService">
<property name="deptdao" ref="deptdao"></property>
</bean>
<bean id="deptaction" class="com.hutu.action.DeptAction">
<property name="deptservice" ref="deptProxy"></property>
</bean>
</beans>
|
Spring配置文件1 |
web |
|
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/laohutu"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.hbm2ddl.auto">
update
</prop>
<prop key="hibernate.show_sql">
true
</prop>
<prop key="hibernate.format_sql">
true
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/huawei/spring/po/Dept.hbm.xml</value></list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="saveOrUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="proxyTargetClass" >
<value>true</value>
</property>
<property name="beanNames">
<value>*Service</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<bean id="DeptDAO" class="com.huawei.spring.dao.DeptDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="DeptService" class="com.huawei.spring.service.DeptService">
<property name="deptdao" ref="DeptDAO"></property>
</bean>
<bean id="DeptServlet" class="com.huawei.spring.servlet.DeptServlet">
<property name="deptservice" ref="DeptService"></property>
</bean>
</beans>
|
捕获404-505 |
web |
|
在写程序时,别忘记给程序加上错误捕获处理。
在web.xml中添加以下内容,捕获错误。
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/index.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 配置错误处理 -->
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/505.html</location>
</error-page>
<!-- 配置异常处理 -->
<error-page>
<exception-type>javax.servle.ServletException</exception-type>
<location>/error.html</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error.html</location>
</error-page>
</web-app>
500错误: 服务器内部错误,或是程序有问题。
400错误:URL 地址请求错误。
403错误:权限错误。
404错误:客户端请求的网页不存在。
百度上搜索的错误:HTTP:
HTTP
1xx-信息提示
这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。
100-继续。
101-切换协议。
2xx-成功
这类状态代码表明服务器成功地接受了客户端请求。
200-确定。客户端请求已成功。
201-已创建。
202-已接受。
203-非权威性信息。
204-无内容。
205-重置内容。
206-部分内容。
3xx-重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。
301-对象已永久移走,即永久重定向。
302-对象已临时移动。
304-未修改。
307-临时重定向。
4xx-客户端错误
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。400-错误的请求。
401-访问被拒绝。IIS定义了许多不同的401错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在IIS日志中显示:
401.1-登录失败。
401.2-服务器配置导致登录失败。
401.3-由于ACL对资源的限制而未获得授权。
401.4-筛选器授权失败。
401.5-ISAPI/CGI应用程序授权失败。
401.7–访问被Web服务器上的URL授权策略拒绝。这个错误代码为IIS6.0所专用。
403-禁止访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因:
403.1-执行访问被禁止。
403.2-读访问被禁止。
403.3-写访问被禁止。
403.4-要求SSL。
403.5-要求SSL128。
403.6-IP地址被拒绝。
403.7-要求客户端证书。
403.8-站点访问被拒绝。
403.9-用户数过多。
403.10-配置无效。
403.11-密码更改。
403.12-拒绝访问映射表。
403.13-客户端证书被吊销。
403.14-拒绝目录列表。
403.15-超出客户端访问许可。
403.16-客户端证书不受信任或无效。
403.17-客户端证书已过期或尚未生效。
403.18-在当前的应用程序池中不能执行所请求的URL。这个错误代码为IIS6.0所专用。
403.19-不能为这个应用程序池中的客户端执行CGI。这个错误代码为IIS6.0所专用。
403.20-Passport登录失败。这个错误代码为IIS6.0所专用。
404-未找到。
404.0-(无)–没有找到文件或目录。
404.1-无法在所请求的端口上访问Web站点。
404.2-Web服务扩展锁定策略阻止本请求。
404.3-MIME映射策略阻止本请求。
405-用来访问本页面的HTTP谓词不被允许(方法不被允许)
406-客户端浏览器不接受所请求页面的MIME类型。
407-要求进行代理身份验证。
412-前提条件失败。
413–请求实体太大。
414-请求URI太长。
415–不支持的媒体类型。
416–所请求的范围无法满足。
417–执行失败。
423–锁定的错误。
5xx-服务器错误
服务器由于遇到错误而不能完成该请求。
500-内部服务器错误。
500.12-应用程序正忙于在Web服务器上重新启动。
500.13-Web服务器太忙。
500.15-不允许直接请求Global.asa。
500.16–UNC授权凭据不正确。这个错误代码为IIS6.0所专用。
500.18–URL授权存储不能打开。这个错误代码为IIS6.0所专用。
500.100-内部ASP错误。
501-页眉值指定了未实现的配置。
502-Web服务器用作网关或代理服务器时收到了无效响应。
502.1-CGI应用程序超时。
502.2-CGI应用程序出错。application.
503-服务不可用。这个错误代码为IIS6.0所专用。
504-网关超时。
505-HTTP版本不受支持。
|
获取服务器IP |
web |
|
方案一:
public static String getServerIp() {
InetAddress address;
String ip;
try {
address = InetAddress.getLocalHost();
ip = Utils.isNull(address.getHostAddress()) ? "localhost" : address
.getHostAddress();
} catch (UnknownHostException e) {
return "localhost";
}
return ip;
}
方案二:
public String getServerIp(){
try {
Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) netInterfaces
.nextElement();
ip = (InetAddress) ni.getInetAddresses().nextElement();
SERVER_IP = ip.getHostAddress();
if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {
SERVER_IP = ip.getHostAddress();
break;
} else {
ip = null;
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SERVER_IP;
}
方案三:
public static String getLocalIP(){
InetAddress addr = null;
try {
addr = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] ipAddr = addr.getAddress();
String ipAddrStr = "";
for (int i = 0; i < ipAddr.length; i++) {
if (i > 0) {
ipAddrStr += ".";
}
ipAddrStr += ipAddr[i] & 0xFF;
}
//System.out.println(ipAddrStr);
return ipAddrStr;
}
|
web前台复选框解决方案 |
web |
|
<body style="text-align: center;">
<form action="<%=path%>/servlet/EmpServlet.action?method=updateEmp&empid=${emp.empid}" method="post">
<table bgcolor="skyblue" border="1" bordercolor="gray" cellpadding="0" cellspacing="0" align="center" style="text-align: center;">
<tr>
<td>员工名称</td>
<td><input name="empname" value="${emp.empname }"></td>
</tr>
<tr>
<td>员工性别</td>
<td>
<input type="radio" name="empsex" value="男" <c:if test="${emp.empsex=='男' }">checked="checked"</c:if>>男
<input type="radio" name="empsex" value="女" <c:if test="${emp.empsex=='女' }">checked="checked"</c:if>>女
</td>
</tr>
<tr>
<td>员工角色</td>
<td>
<c:forEach var="allrole" items="${allroles }">
<input type="checkbox" name="roleid" value="${allrole.roleid}"
<c:forEach var="role" items="${roles}">
<c:if test="${role.roleid==allrole.roleid }">checked="checked"</c:if>
</c:forEach>>
${allrole.rolename}
</c:forEach>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
|
servlet登陆拦截器 |
web |
|
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 登陆拦截器
*
*/
public class LoginVerify implements Filter {
public void destroy() {
System.out.println("过滤器销毁");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest hr = (HttpServletRequest)request;
HttpSession session = hr.getSession();
//如果session 部位空 ,则可以浏览网页或者系统
if(session.getAttribute("islog")!=null){
chain.doFilter(request, response);
}else{
request.getRequestDispatcher("logn.jsp").forward(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("销毁过滤器");
}
}
|
前台温馨提示 |
web |
|
/**
* @删除学生信息
* @return
* @throws IOException
*/
public String deleteStudent() throws IOException {
PrintWriter out=ServletActionContext.getResponse().getWriter();
this.getStudentservice().deleteStudent(student.getStudentid());
this.jump("xuesheng/showStudent.action", "delete success", out);
return null;
}
/**
* 正删改操作成功后给用户的提示框
* @param url 目标地址
* @param message 跳转到目标页面后消息框
* @param out 输出对象
*/
public void jump(String url, String message, PrintWriter out) {
out.print("<script language='javascript'>alert('" + message
+ "');window.location='" + url + "'</script>");
}
struts.xml中配置
<action name="showStudent" class="org.hutu.sims.action.StudentAction" method="showStudent">
<result name="success">/pages/stu/studentlist.jsp</result>
</action>
<action name="deleteStudent" class="org.hutu.sims.action.StudentAction" method="deleteStudent">
</action>
|