登录页面返回报错,求大神帮忙 10C

页面返回这样

图片说明

菜鸟束手无措,求大神帮忙看一下

2个回答

IUserService上面加上自动注入注解@Autowired

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
未赋值的session在jsp报错,求大神帮帮忙吧
想要在页面打开是判定一个session会话,这个session要等到跳转到服务器之后才能赋值。 但是明明我设定了判断是否为空,可是还是报错。 这是我的页面和服务器代码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>请填写上传表单</title> </head> <body> <% Object o = session.getAttribute("Error1"); if(!o.equals(null)||(!"".equals(o))){ String er = (String)o; %> 操作失败,<%=er %> <% } %> <form action="UploadServlet" method="post"> 关键字:<input type="text" name="keyw"><br/> 简要描述(10个字,可以不写):<input type="text" name="remark"><br/> 文章照片:<input type="file" name="art"/><br/> <input type="submit" value="上传"> <input type="reset" value="重置"/> </form> <input type ="button" value="返回" onclick="location.href='main.jsp'"> </body> </html> package com.hcpolic.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.hcpolic.entity.Artical; import com.hcpolic.entity.User; import com.hcpolic.rbac.Opreator; import com.hcpolic.rbac.Permission; import com.hcpolic.util.Tools; import org.apache.commons.fileupload.disk.*; import org.apache.commons.fileupload.servlet.*; import org.apache.commons.fileupload.*; public class UploadServlet extends HttpServlet { /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); HttpSession session=request.getSession(); User us = (User)request.getSession().getAttribute("user"); String rem = (String)request.getAttribute("remark"); String key = (String)request.getAttribute("keyw"); String er = null; Tools t = new Tools(); ////////////////////////////////保存上传文件至指定文件夹 String savePath = "D:/upload/"; DiskFileItemFactory fac = new DiskFileItemFactory(); fac.setRepository(new File(savePath+"uploadtemp")); ServletFileUpload upload = new ServletFileUpload(fac); upload.setFileSizeMax(1048576); try { List<FileItem> it = upload.parseRequest(request); Iterator<FileItem> iter = it.iterator(); while(iter.hasNext()){ FileItem item = iter.next(); String fieldName = item.getFieldName(); if(!item.isFormField()){ File saveFile = null; InputStream input = null; OutputStream output = null; savePath = savePath + File.separator+String.valueOf(t.randomId(9,6))+"."+item.getName().split("\\.")[1]; input = item.getInputStream(); output = new FileOutputStream(new File(savePath)); byte data[] = new byte[512]; int temp = 0; while((temp = input.read(data,0,512))!=-1){ output.write(data); } input.close(); output.close(); } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } //////////////////////////////// ///////////////////////////////抓取系统时间 String strDate = null; SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); strDate = sf.format(new Date()); /////////////////////////////// Artical a = new Artical(); Permission per = new Permission(); Opreator o = new Opreator(); a.setId(us.getId().substring(4, 10)+String.valueOf(t.randomId(9,6))); a.setKeyWords(key.trim()); a.setRemark(rem); a.setImagePath(savePath); a.setUpdateTime(strDate.trim()); boolean ret = o.isAdd(a, us); if(ret){ response.sendRedirect("main.jsp"); }else{ er = "您的权限不够!!"; session.setAttribute("Error1", er); response.sendRedirect("Upload.jsp"); } } }
微信获取用户授权后,物理键返回报错40163
做微信H5页面获取到用户授权后,当用户点击手机物理返回键,或者点击微信返回键的时候 就报错40163 我用监听用户点击返回的时候设置返回到指定页面 有时候也出40163 也用过history.go 这个也不行 用window.history.pushState注入历史记录的话,是可以解决 但是微信分享就失效了。 有大神能帮忙解决下吗? 谢谢了
springmvc2.5中绑定表单日期字段报错,请大神帮忙
action为MultiActionController 绑字数据方法为 Article formData = (Article)newCommandObject(Article.class); bind(request, formData); 其中有一个字段类型为Date型 页面文件字段为<input name='createTime' value='201207-24'/> 提示:Errors binding onto object 'command'; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object 'command' on field 'createTime': rejected value [2012-07-24]; codes [typeMismatch.command.createTime,typeMismatch.createTime,typeMismatch.java.sql.Timestamp,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [command.createTime,createTime]; arguments []; default message [createTime]]; default message [Failed to convert property value of type [java.lang.String] to required type [java.sql.Timestamp] for property 'createTime'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.sql.Timestamp] for property 'createTime': no matching editors or conversion strategy found] •返回 请问如何解决????????
支付宝接口调用报错,不知道是什么原因,各位大神帮忙看看呢
![图片说明](https://img-ask.csdn.net/upload/201708/29/1503988408_782216.png) // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 public static final String APP_ID = Const.APP_ID; // 商户私钥,您的PKCS8格式RSA2私钥 public static final String PRIVATE_KEY = Const.PRIVATE_KEY; // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。 public static final String ALIPAY_PUBLIC_KEY = Const.ALIPAY_PUBLIC_KEY; // 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 public static final String NOTIFY_URL = Const.ZHIAOADMINURL+"/alipayManager/notify.ajax"; // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 public static final String RETURN_URL = Const.ZHIAOADMINURL+"alipayManager/return_url.do"; // 签名方式 public static final String SIGN_TYPE = "RSA2"; // 字符编码格式 public static final String CHARSET = "UTF-8"; // 支付宝网关 public static final String GATEWAY_URL = "https://openapi.alipay.com/gateway.do"; //参数返回格式,只支持json private static final String FORMAT = "json"; //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ public static void aliPay(String outTradeNo, double totalAmount, String subject, HttpServletResponse response) throws IOException { //获得初始化的AlipayClient AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的request alipayRequest.setReturnUrl(RETURN_URL); alipayRequest.setNotifyUrl(NOTIFY_URL);//在公共参数中设置回跳和通知地址 StringBuilder bizContent = new StringBuilder("{\"out_trade_no\":\"").append(outTradeNo).append("\",\"total_amount\":").append(totalAmount). append(",\"subject\":\"").append(subject).append(",\"timeout_express\":\"10m\",\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); alipayRequest.setBizContent(bizContent.toString());//填充业务参数 System.out.println("请求报文为:----"+ JSON.toJSONString(alipayRequest)); String form = ""; try { form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单 } catch (AlipayApiException e) { e.printStackTrace(); } response.setContentType("text/html;charset=" + CHARSET); PrintWriter out = response.getWriter(); out.write(form);//直接将完整的表单html输出到页面 out.flush(); out.close(); } 调用: String orderids= UUID.randomUUID().toString().replace("-", ""); double totalAmount = 0.01; //调用支付宝 String outTradeNo =orderids, subject = "测试标题"; AlipayConfig.aliPay(outTradeNo, totalAmount, subject, response);
尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,求大神帮忙指正
java新人,尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,调用 insert 指令没问题,而 select 指令出现如下报错: com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有语法错误。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616) at com.javaee.servletxm.comm.MSSQLJDBC.select(MSSQLJDBC.java:160) at com.javaee.servletxm.comm.MSSQLJDBC.select(MSSQLJDBC.java:195) at com.javaee.servletxm.comm.MSSQLJDBC.selectFirstValue(MSSQLJDBC.java:172) at com.javaee.servletxm.comm.MSSQLJDBC.getPageNumber(MSSQLJDBC.java:221) at com.javaee.servletxm.comm.MSSQLJDBC.selectByFY(MSSQLJDBC.java:259) at com.javaee.servletxm.kqgl.KqManager.getAllKqxx(KqManager.java:38) at com.javaee.servletxm.kqgl.Kqwh.doGet(Kqwh.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1760) at java.lang.Thread.run(Thread.java:724) 这是具体的代码,求大神帮忙指正 package com.javaee.servletxm.comm; /** * jdbc下 SQL Server 2005 数据库的封装类 */ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.List; import java.util.Properties; public class MSSQLJDBC { // 配置文件名称 private String iniFileName = MSSQLJDBC.class.getClassLoader().getResource("/com/javaee/servletxm/comm").getPath()+ "mssql.properties"; // 连接数据库 private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private String url = "jdbc:sqlserver://localhost;DatabaseName=jdms"; private String user = "sa"; private String password = ""; // 定义连接属性 private Connection connect = null; // 与连接有关三个通道 private Statement stmt = null; private PreparedStatement pstmt = null; private CallableStatement cstmt = null; public static final String stmtType = "stmt"; public static final String pstmtType = "pstmt"; public static final String cstmtType = "cstmt"; // 定义参数类型的静态常量值 public static final String varCharType = "varchar"; public static final String intType = "int"; public static final String doubleType = "decimal"; public static final String dateType = "datetime"; public static final String timeType = "timestamp"; // 定义全局的结果集 private ResultSet rs = null; // 在构造方法中对属性进行初始化赋值操作 public MSSQLJDBC() { // 读取配置文件 readIni(); // 初始化连接 initConnect(); } // 可配置文件 .properties // 读取配置文件 private void readIni() { File file = new File(iniFileName); if (!file.exists()) { // 创建一个文件 try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } // 判断文件是否有值 if (file.length() == 0) {// 说明是一个空文件 // 初始化值 try { Properties p = new Properties(); p.put("driver", driver); p.put("url", url); p.put("user", user); p.put("password", password); FileOutputStream fos = new FileOutputStream(file); p.store(fos, "配置文件信息"); fos.close(); } catch (IOException e) { e.printStackTrace(); } } else {// 如果有值 // 将信息读取出来 try { FileInputStream fis = new FileInputStream(file); Properties p = new Properties(); p.load(fis); this.driver = p.getProperty("driver"); this.url = p.getProperty("url"); this.user = p.getProperty("user"); this.password = p.getProperty("password"); fis.close(); } catch (IOException e) { e.printStackTrace(); } } } // 建立连接 private void initConnect() { try { Class.forName(driver); this.connect = DriverManager.getConnection(url, user, password); this.connect.setAutoCommit(false);// 设置手动提交事务 this.stmt = connect.createStatement(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } /*/ 从tomcat缓冲池获取连接 private void initConnectFromDataSource() { try { InitialContext ic = new InitialContext(); DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/oracleds"); this.connect = ds.getConnection(); this.connect.setAutoCommit(false); this.stmt = connect.createStatement(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }*/ // 需要调用者控制事务的两个方法 // 提交方法 private void commit() { try { this.connect.commit(); } catch (SQLException e) { e.printStackTrace(); } } // 回滚事务 private void rollBack() { try { this.connect.rollback(); } catch (SQLException e) { e.printStackTrace(); } } // 定义一组与操作有关的方法 // 使用普通通道执行的select public ResultSet select(String sql) { ResultSet prs = null; if (stmt != null) { try { prs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } } return prs; } // 根据传入的sql直接获取单一值 // 使用此方法的时候sql语句返回的单一的值 public String selectFirstValue(String sql, String type, List<String> csList) { String rstr = ""; rs = select(sql, type, csList);// 确定此结果集只有一条记录 if (rs != null) {// 说明结果集有值,且只有一条记录 try { ResultSetMetaData rsmd = rs.getMetaData(); if (rs.next()) { // 移动到第一条记录 String p_type = rsmd.getColumnTypeName(1); rstr = getResultSetValue(rs, 1, p_type); } } catch (SQLException e) { e.printStackTrace(); } } return rstr; } // 使用普通通道执行的select /** * sql 参数 type 使用通道的类型 stmt pstmt cstmt List<String> csList 预编通道执行的参数队列 * String 最少必须满足如下条件的字符串 数据类型 ,数据值 数据类型定义说明 字符串 数字(整数、小数) 日期(DATE、TIMESTAMP) */ public ResultSet select(String sql, String type, List<String> csList) { ResultSet prs = null; if (type.equals(stmtType)) {// 说明使用普通通道来执行 prs = select(sql); } else if (type.equals(pstmtType)) {// 说明使用预编译通道来执行 if (connect != null) { try { pstmt = connect.prepareStatement(sql); // 验证传入的参数和sql中的参数个数一致 setPrepareStatement(pstmt, csList);// 将参数设置进当前的预编译通道 prs = pstmt.executeQuery(); } catch (Exception e) { e.printStackTrace(); } } } return prs; } // 获取 总页数 public int getPageNumber(String sql, String type, List<String> csList, int pageSize) { // 处理总页数 int pageNumber = 0; // 第一步获取sql总记录数 String psql = "select count(*) from (" + sql + ")"; String result = selectFirstValue(psql, type, csList); int rows = 0; if (result != null && result.trim() != "") { rows = Integer.valueOf(result); } if (rows % pageSize == 0) { pageNumber = rows / pageSize; } else { pageNumber = rows / pageSize + 1; } return pageNumber; } /** * 自动添加分页查询方法 * * @param sql * 要执行的sql * @param type * 执行方式 * @param csList * 参数列表 * @param curPage * 当前页数 * @param pageSize * 每页记录数 默认为10 * @return */ public ResultSet selectByFY(String sql, String type, List<String> csList, int curPage, int pageSize) { ResultSet prs = null; // 处理 每页记录数 if (pageSize <= 0) { pageSize = 10;// 默认页面10条记录 } int pageNumber = getPageNumber(sql, type, csList, pageSize); // 处理当前页数 if (curPage < 0) { curPage = 1;// 默认第一页 } if (curPage > pageNumber) { curPage = pageNumber; } String psql = "select tmpaa.* from (select tmpa.*,(select (ROW_NUMBER() over (order by id))) as rn from (" + sql + ") tmpa where (select (ROW_NUMBER() over (order by id))) <= " + (curPage * pageSize) + ") tmpaa where tmpaa.rn >= " + ((curPage - 1) * pageSize + 1); prs = select(psql, type, csList); return prs; } // 将预编通道执行的参数队列按照指定规则设置进通道中 private void setPrepareStatement(PreparedStatement p, List<String> csList) throws Exception { if (csList != null && csList.size() > 0) { for (int i = 0; i < csList.size(); i++) { // 此处的str是数据类型 ,数据值 // 解析出数据类型和数据值 String[] s = csList.get(i).split(","); String sType = s[0]; String sData = s[1]; if (varCharType.equals(sType)) { p.setString(i + 1, sData); } else if (intType.equals(sType)) { p.setInt(i + 1, Integer.valueOf(sData)); } else if(doubleType.equals(sType)){ p.setDouble(i+1, Double.valueOf(sData)); } else if (dateType.equals(sType)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = sdf.parse(sData); p.setDate(i + 1, new Date(d.getTime())); } else if (timeType.equals(sType)) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = sdf.parse(sData); p.setTimestamp(i + 1, new Timestamp(d.getTime())); } } } } // 定义一个执行insert update delete的方法 public int iudSql(String sql) { int ri = -1; if (stmt != null) { try { ri = stmt.executeUpdate(sql); commit(); } catch (SQLException e) { e.printStackTrace(); rollBack(); } } return ri; } public int iudSql(String sql, String type, List<String> csList) { int ri = -1; if (stmtType.equals(type)) { ri = iudSql(sql); } else if (pstmtType.equals(type)) { if (connect != null) { try { pstmt = connect.prepareStatement(sql); setPrepareStatement(pstmt, csList); ri = pstmt.executeUpdate(); commit(); } catch (Exception e) { e.printStackTrace(); rollBack(); } } } return ri; } /** * 编写一个通用的遍历ResultSet结果集的方法 */ public void iteratorResultSet(ResultSet rs) { try { if (rs != null) {// 说明有值 // ResultSetMetaData 此对象里封装了与结果集有关所有信息 // 此结果有几列组成,每列的列名,每列的数据类型 ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集列数 int columnCount = rsmd.getColumnCount(); // 输出此结果集的所有列名 for (int i = 1; i <= columnCount; i++) { System.out.print(rsmd.getColumnName(i) + "\t"); } System.out.println(""); // 遍历输出所有的数据 while (rs.next()) { // 如何在获取rs中的数据? for (int i = 1; i <= columnCount; i++) { String type = rsmd.getColumnTypeName(i); System.out.print(getResultSetValue(rs, i, type) + "\t"); } System.out.println(""); } } } catch (SQLException e) { e.printStackTrace(); } } // 从ResultSet中根据数据类型来得到数据值的方法 // 先处理常用的sqlserver的数据类型的对应 private String getResultSetValue(ResultSet rs, int index, String type) { String rstr = ""; try { if (rs != null && !"".equals(type) && index > 0) { if ("char".equals(type.trim()) || "varchar".equals(type.trim())) { if (rs.getString(index) != null) { rstr = rs.getString(index); } } else if ("int".equals(type.trim())) { rstr = rs.getInt(index) + ""; } else if ("decimal".equals(type.trim())) { rstr = String.valueOf(rs.getDouble(index)); } else if ("date".equals(type.trim())) { Date date = rs.getDate(index); if (date != null) { rstr = new SimpleDateFormat("yyyy年MM月dd日").format(date); } } else if ("timestamp".equals(type.trim()) || "datetime".equals(type.trim())) { Timestamp tt = rs.getTimestamp(index); if (tt != null) { rstr = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(tt); } } } } catch (SQLException e) { e.printStackTrace(); } return rstr; } /* //统一事务管理的批量sql的封装 public boolean iudSql(List<String> sqlList){ int ri = -1; if(stmt!=null){ try { ri = stmt.executeUpdate(sql); commit(); } catch (SQLException e) { e.printStackTrace(); rollBack(); } } return ri; }*/ // 关闭连接 public void close() { try { // 关闭所有的与数据库有关的对象 if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (pstmt != null) { pstmt.close(); pstmt = null; } if (cstmt != null) { cstmt.close(); cstmt = null; } if (connect != null) { connect.close(); connect = null; } } catch (SQLException e) { e.printStackTrace(); } } }
今天小妹搭一个ssm框架,但是就是报404,大神能帮忙看一下吗
1.先贴上代码结构 ![图片说明](https://img-ask.csdn.net/upload/201802/23/1519372058_795994.png) 2.配置如下 web.xml ![图片说明](https://img-ask.csdn.net/upload/201802/23/1519372803_835812.png)![图片说明](https://img-ask.csdn.net/upload/201802/23/1519372813_171670.png)![图片说明](https://img-ask.csdn.net/upload/201802/23/1519372821_410087.png) spring-mvc.xml 如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.part3.controller" /> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --> </list> </property> </bean> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean> </beans> ``` spring-mybatis.xml 如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <context:annotation-config /> <!-- 自动扫描 --> <context:component-scan base-package="com.part3.controller"/> <context:component-scan base-package="com.part3.service"/> <context:component-scan base-package="com.part3.dao" /> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <!-- <property name="location" value="classpath:jdbc.properties" /> --> <property name="locations"> <list> <value>classpath:log4j.properties</value> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:sqlMapConfig.xml" /> <property name="typeAliasesPackage" value="com.part3.pojo" /> <!-- mapper配置路径 --> <!-- 自动扫描mapper.xml文件 --> <!-- mapper配置路径 --> <property name="mapperLocations"> <list> <!-- 表示在com.ws.map包或以下所有目录中,以-mapper.xml结尾所有文件 --> <value>classpath:com/part3/mapping/*.xml</value> </list> </property> </bean> <!-- 扫描Mapper中的抽象类 ,实例化之后会自动装配--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.part3.mapping" /> <property name="markerInterface" value="com.part3.mapping.SqlMapper" /> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans> ``` sqlMapConfig.xml 如下 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置设置 --> <settings> <!-- 配置全局性 cache 的 ( 开 / 关) default:true --> <setting name="cacheEnabled" value="true"/> <!-- 是否使用 懒加载 关联对象 同 hibernate中的延迟加载 一样 default:true --> <setting name="lazyLoadingEnabled" value="true"/> <!-- [当对象使用延迟加载时 属性的加载取决于能被引用到的那些延迟属性,否则,按需加载(需要的是时候才去加载)] --> <setting name="aggressiveLazyLoading" value="true"/> <!-- 是否允许单条sql 返回多个数据集 (取决于驱动的兼容性) default:true --> <setting name="multipleResultSetsEnabled" value="true"/> <!-- 是否可以使用列的别名 (取决于驱动的兼容性) default:true--> <setting name="useColumnLabel" value="true"/> <!--允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 default:false--> <setting name="useGeneratedKeys" value="false"/> <!--指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分 FULL:全部--> <setting name="autoMappingBehavior" value="PARTIAL"/> <!-- 这是默认的执行类型 SIMPLE :简单 REUSE:执行器可能重复使用prepared statements 语句 BATCH:执行器可以重复执行语句和批量更新 --> <setting name="defaultExecutorType" value="SIMPLE"/> <!-- 设置驱动等待数据响应的超时数 默认没有设置--> <setting name="defaultStatementTimeout" value="25000"/> <!-- [是否启用 行内嵌套语句 defaut:false] --> <setting name="safeRowBoundsEnabled" value="false"/> <!-- [是否 启用 数据中 A_column 自动映射 到 java类中驼峰命名的属性 default:fasle] --> <setting name="mapUnderscoreToCamelCase" value="false"/> <!-- 设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session --> <setting name="localCacheScope" value="SESSION"/> <!-- 设置但JDBC类型为空时,某些驱动程序 要指定值,default:other --> <setting name="jdbcTypeForNull" value="OTHER"/> <!-- 设置触发延迟加载的方法 --> <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/> </settings> <!-- 别名 <typeAliases> <typeAlias type="com.ws.poi.user.User" alias="User" /> </typeAliases> --> </configuration> ``` ``` 运行后,控制台如下![图片说明](https://img-ask.csdn.net/upload/201802/23/1519372724_823687.png) 页面如下,直接执行报错404![图片说明](https://img-ask.csdn.net/upload/201802/23/1519372736_100549.png) 就是找不出什么问题,小妹实在无奈了,有大神帮忙看看吗?自学很累
大神帮忙看看这是什么问题?
![图片说明](https://img-ask.csdn.net/upload/201709/11/1505095911_340439.png) 第一个错不需要看主要是第二个错 我调的别的公司的接口传进去了数值,现在因为人家数据库中没有数据,所以给我返回了个null,这说明接口应该是调用成功了,我想知道第二个错误是不是因为我没有数据所以报错?我在后台判断接口的数据如果是null前端页面就会弹一个弹窗,现在弹窗成功了,这个错误是因为没有数据吧?
求助!jsp网页在登陆页面不跳转不报错
struts框架的jsp web工程,login.jsp可以显示,点击登陆之后页面没有任何变化,也不报错。如果不输或者错输用户名和密码,也没有任何错误提示,现在就是停在登陆页面,求大神帮忙看看~感激不尽 LoginAction如下: package cn.com.syis.hisol.hrms.action.login; import java.util.Locale; import org.springframework.beans.factory.annotation.Autowired; import cn.com.syis.hisol.hrms.action.BaseAction; import cn.com.syis.hisol.hrms.common.CommonConst; import cn.com.syis.hisol.hrms.common.MessageErrorConst; import cn.com.syis.hisol.hrms.model.AdminUserModel; import cn.com.syis.hisol.hrms.service.LoginService; import cn.com.syis.hisol.hrms.util.CommonStringUtil; import cn.com.syis.hisol.hrms.util.MD5; /** * 用户登录退出用Action * * * */ public class LoginAction extends BaseAction { /** 用户ID */ private String userId; /** 密码 */ private String pswd; /** 登录Service */ @Autowired private LoginService loginService; /** * 取得用户ID * @return 用户ID */ public String getUserId() { return userId; } /** * 设置用户ID * @param userId 用户ID */ public void setUserId(String userId) { this.userId = userId; } /** * 取得密码 * @return 密码 */ public String getPswd() { return pswd; } /** * 设置密码 * @param pswd 密码 */ public void setPswd(String pswd) { this.pswd = pswd; } /** * 首页初期化 * * @return 迁移地址 * @throws Exception 异常 */ public String init() throws Exception { return SUCCESS; } /** * 登录处理 * * @return 迁移地址 * @throws Exception 异常 */ public String login() throws Exception { // 检查用户是否输入用户ID if (!CommonStringUtil.isValidForTrim(userId)) { // 提示错误信息:请输入员工用户ID addError(MessageErrorConst.HRM00000001E); // 返回到登录画面 return ERROR; } // 检查用户是否输入密码 if (!CommonStringUtil.isValidForTrim(pswd)) { // 提示错误信息:请输入密码 addError(MessageErrorConst.HRM00000002E); // 返回到登录画面 return ERROR; } // 检索用户信 息 AdminUserModel adminUserModel = loginService.searchAdminUserInfo(userId); // 判断用户信息是否存在 if (adminUserModel == null || adminUserModel.getStatus() == 0) { // 提示错误信息:您输入的员工用户ID不存在,请重新输入 addError(MessageErrorConst.HRM00000003E); // 返回到登录画面 return ERROR; } // MD5加密处理 MD5 m = new MD5(); // 判断用户密码是否正确 if (!m.getMD5ofStr(pswd).equals(adminUserModel.getPswd())) { // 提示错误信息:您输入的密码错误,请重新输入 addError(MessageErrorConst.HRM00000004E); // 返回到登录画面 return ERROR; } // 判断用户是否已被锁定 if (adminUserModel.getStatus() == 9) { // 提示错误信息:您的账号已经被锁定,请联系系统管理员 addError(MessageErrorConst.HRM00000005E); // 返回到登录画面 return ERROR; } // 定义默认语言 Locale lo = Locale.CHINA; // 向Session中放入默认语言 setSessionValue("WW_TRANS_I18N_LOCALE", lo); setSessionValue(CommonConst.SESSION_LOGIN_USER_INFO, adminUserModel); return SUCCESS; } /** * 退出处理 * * @return 迁移地址 * @throws Exception 异常 */ public String logout() throws Exception { // 清除Session信息 clearAllSession(); // 迁移到登录画面 return SUCCESS; } }
求教:哪位大神帮忙看下代码,本人小白,实在不知道哪里有问题!!
1. 代码如下,登陆页面,把java逻辑放到了后台页面上,运行的时候没有报错,但是不跳转。测试账号密码正确不跳转因为没写,但是测试账号密码错误的情况下也不跳转。 1. <%@ page language="java" import="java.util.*,java.sql.*,info.DataBase" pageEncoding="UTF-8"%> 1. <%@ page session="true" %> 1. 1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 1. html 1. head 1. <title>用户登录页面</title> 1. /head 1. body 1. script language="javascript" 1. function check_login(){ 1. if(loginform.UserName.value==""){ 1. alert("用户名不能为空"); 1. return false; 1. } 1. else if(loginform.UserPassWord.value==""){ 1. alert("密码不能为空") 1. return false; 1. }else{ 1. return true; 1. } 1. /script 1. form name="loginform" method="post" action="Ologin.jsp"> 1. table 1. tr 1. td姓名: input type="text" name="UserName" id="UserName"/td 1. /tr 1. tr 1. td密码: input type="password" name="UserPassWord" id="UserPassWord" /td 1. /tr 1. tr 1. td input type="submit" name="sub" value="登录" onclick="javascript:return(check_login());" 1. input type="reset" name="res" value="返回" 1. /td 1. /tr 1. /table 1. /form 1. 1. /body 1. /html 1. <%@ page language="java" import="java.util.*,info.DataBase,java.sql.*" pageEncoding="UTF-8"%> 1. 1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 1. <html> 1. <head> 1. <title>Ologin</title> 1. 1. </head> 1. 1. <body> 1. <% 1. String UserName=request.getParameter("UserName"); 1. String UserPassword=request.getParameter("UserPassword"); 1. DataBase DB=new DataBase(); 1. DB.getConn(); 1. 1. try{ 1. String Sql="SELECT UserName,UserPassWord FROM user WHERE UserName='"+UserName+"'AND UserPassWord='"+UserPassword+"'"; 1. Connection conn=DB.getConn(); 1. Statement stmt=conn.createStatement(); 1. ResultSet rs=stmt.executeQuery(Sql); 1. 1. while(rs.next()){ 1. if(UserPassword==rs.getString(2)) 1. { 1. out.println("登陆成功!"); 1. session.setAttribute("UserName",rs.getString(1)); 1. session.setAttribute("UserPassWord",rs.getString(2)); 1. response.sendRedirect(""); //跳转登陆后主页 1. } 1. else 1. { 1. out.print("登陆失败!"); 1. response.sendRedirect("login.jsp"); 1. } 1. } 1. }catch(Exception ex){ 1. ex.printStackTrace(); 1. }finally{ 1. DB.DBclose(); 1. } 1. %> 1. </body> 1. </html> 1.
alipay支付返回form,异步调取,当subject属性有中文时请求出现错误
开发支付宝支付,现在由后端返回的是一串html代码,也就是form表单,我展示的方式是 先开一个新得浏览器窗口,再将这段代码写入,具体如下: const newTab = window.open(); const div = document.createElement('div'); div.innerHTML = res.data; newTab.document.body.appendChild(div); newTab.document.forms[0].submit(); 但是这种就会出现验签失败现象; 经过排查,是由于支付宝支付的一个参数subject中有中文,发现我传过去的参数是经过gb2312编码,但是支付宝解码是utf-8解码,所以会出现中文乱码报错的现象!!!! 但是,在新开的页面加上“<meta http-equiv="Content-Type" content="text/html; charset=utf-8">”也是没用的。 而且我在原有的页面上加上那段form代码执行就不会报错,会按照utf-8编码,但是用window.open()新开页面就会报错。 请各位大神帮帮忙,谢谢!!!!
关于 No suitable driver问题,问题已经解决,但问题本身很奇怪
这个问题之前有过发生,但我都没较真,解决就过去了,但今天认真对比了下发现很奇怪。望大神帮助指点 先说问题: 项目为maven 的 spring mvc+mybatis框架,本地运行了一下后,去tomcat下打包,上传服务器 ,上传后,修改jdbc.properties文件,更改数据库。 之后tomcat正常启动,登录页面正常打开(未访问DB的页面),登录后,开始报错: No suitable driver 。 按网上的说法一一尝试皆无效。 本地服务远程连接DB无问题运行。 后来解决方法:把本地跑的布署项目包直接上传服务器,OK。 返回查问题根本原因。**发现不能远程修改jdbc.properties文件只要动一下就报no suitable driver错误。复制本地的过去就没问题。文字一模一样。** 另外: 本地文件编辑在eclipse中编辑,编码utf-8。 服务器上用的记事本。 我有点怀疑是系统底层编码问题,但实在无头绪理清,在此求教大神帮忙~
GPS定位:locationManager.requestLocationUpdates()报错
我是新手 自学 改代码按照视频里写的 视频里代码没问题 到我这就有问题:locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,2000,100,this); 整行代码都有红线! 本页代码跟视频里一模一样http://v.youku.com/v_show/id_XMTYyMDIwNTgzNg==.html?f=27510286&o=0&firsttime=187&spm=a2hfx.8251854.recordContent.DL~DD~5~5!11~5~A 请大神帮忙看看视频! ``` package fragment; import android.content.Context; import android.content.Intent; import android.location.Address; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; ; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.luao2.jiemianzhuantiao.R; import com.lidroid.xutils.ViewUtils; import org.xutils.view.annotation.ViewInject; import java.io.IOException; import java.util.List; import luao2.utils.SharedUtils; /** * Created by Administrator on 2017/4/4. */ public class FragmentHome extends Fragment implements LocationListener{ @ViewInject(R.id.index_top_city) private TextView topCity; private String cityName; //当前城市名称 private LocationManager locationManager; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.home_index, null); ViewUtils.inject(this,view); //获取数据并显示 return view; } @Override public void onStart() { super.onStart(); //检查当前的GPS模块 checkGPSIsOpen(); } private void checkGPSIsOpen(){ //获取当前的LocationManager对象 locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); boolean isOpen = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); if (!isOpen){ //进入GPS的设置页面 Intent intent = new Intent(); intent.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivityForResult(intent,0); } //开始定位 startLocation(); } //使用GPS定位的方法 private void startLocation(){ locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,2000,100,this); } //接收并且处理消息 private Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { if (msg.what == 1){ topCity.setText(cityName); } return false; } }); //获取对应位置的经纬度并且定位城市 private void updateWithNewLocation(Location location){ double lat = 0.0,lng = 0.0; if (location !=null){ lat = location.getLatitude(); lng = location.getLongitude(); Log.i("TAG","经度是"+lat+"纬度是:"+lng); }else { cityName = "无法获取城市信息"; } //通过经纬度获取地址,由于地址会有多个,这个和经纬度精确度有关,本实例中定义了最大的返回数2,即在集合对象中有两个值 List<Address> list = null; Geocoder ge = new Geocoder(getActivity()); try { list = ge.getFromLocation(lat,lng,2); } catch (IOException e) { e.printStackTrace(); } if (list !=null && list.size()>0){ for (int i = 0; i < list.size(); i++){ Address ad = list.get(i); cityName = ad.getLocality();//获取城市 } } //发送一条空消息 handler.sendEmptyMessage(1); } //位置信息更改执行方法 @Override public void onLocationChanged(Location location) { //更新当前的位置信息 updateWithNewLocation(location); } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onDestroy() { super.onDestroy(); //保存城市 //停止定位 stopLocation(); } //停止定位 private void stopLocation(){ locationManager.removeUpdates(this); } } ```
java编程中使用solrj,数据传递过程中出了问题,请帮忙看看到底是哪里出了问题并告诉我一下原因
## 使用tomcat7,myeclipse2017 C1,JDK 1.7,maven 3.2.3,solr 4.10.2 ## 通过浏览器访问http://search.taotao.com/search.html?q=tcl ,进入controller后, ## 错误信息: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924252_501906.jpg) ![报错1](https://img-ask.csdn.net/upload/201708/05/1501924263_876276.jpg) ## controller: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924317_113467.jpg) ## service: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924345_921561.jpg) ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924354_916923.jpg) ## pojo:![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924384_588215.jpg) ## solr中的schema.xml中的cid ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924421_73630.jpg) ## solr中cid的属性: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924453_371269.jpg) ## 自己debug后发现映射过程中出问题的地方: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924524_329295.jpg) ## 对queryResponse进行查看: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924546_987631.jpg) ## 发现确实取到值了并贴出: ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501924571_697979.jpg) ## 说一下程序中的数据来源吧,mysql中是直接导入的几千条数据 ![这是表的结构](https://img-ask.csdn.net/upload/201708/05/1501922858_408822.jpg) ## 然后用solrj将表中的数据导入到solr服务器中 的代码: ``` public class DataImportTest { private HttpSolrServer httpSolrServer; private static final ObjectMapper MAPPER = new ObjectMapper(); @Before public void setUp() throws Exception { // 在url中指定core名称:taotao //"http://solr.taotao.com/#/taotao"--界面操作 String url = "http://solr.taotao.com/taotao";//服务地址 HttpSolrServer httpSolrServer = new HttpSolrServer(url); //定义solr的server httpSolrServer.setParser(new XMLResponseParser()); // 设置响应解析器 httpSolrServer.setMaxRetries(1); // 设置重试次数,推荐设置为1 httpSolrServer.setConnectionTimeout(500); // 建立连接的最长时间 this.httpSolrServer = httpSolrServer; } @Test public void testData() throws Exception{ String url = "http://manage.taotao.com/rest/item?page={page}&rows=100"; int page = 1; int pageSize=0; do { String u = StringUtils.replace(url, "{page}", ""+page); String jsonData =doGet(u); JsonNode jsonNode = MAPPER.readTree(jsonData); String rowsStr = jsonNode.get("rows").toString(); List<Item> items=MAPPER.readValue(rowsStr, MAPPER.getTypeFactory().constructCollectionType(List.class, Item.class)); pageSize=items.size(); httpSolrServer.addBeans(items); this.httpSolrServer.commit(); page++; } while (pageSize == 100); } private String doGet(String url) throws Exception{ // 创建Httpclient对象 CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建http GET请求 HttpGet httpGet = new HttpGet(url); CloseableHttpResponse response = null; try { // 执行请求 response = httpclient.execute(httpGet); // 判断返回状态是否为200 if (response.getStatusLine().getStatusCode() == 200) { return EntityUtils.toString(response.getEntity(), "UTF-8"); } } finally { if (response != null) { response.close(); } httpclient.close(); } return null; } } ``` ## 然后就是出了文章开头报的错误。 ![图片说明](https://img-ask.csdn.net/upload/201708/05/1501923430_422663.jpg) ## 在后续的编程过程中,我发现将item中的cid改为Integer,可以解决这个报错。 ## ## 但是通过后台新增的数据,查询就会报错,报的错为 ![报错2](https://img-ask.csdn.net/upload/201708/05/1501923241_176200.jpg) ## 与之前报的错(文章第一张图中的报错)刚好相反。但是将Item类中的cid改为Long型,那么查询新增数据(自己添加的数据)就没问题,查询导入的数据则报文章开头帖子中的错。 ## 这样,我的分析是导入的数据可能存在问题,是否是导入过程中将本来为long型的cid转为了Integer类型? ## ## 但是我确实不知道在哪个地方出错了,麻烦懂的大神帮忙给看看,并告之我详情,十分之感谢~需要什么地方的代码请跟我说,谢谢
win7系统报错getOutputStream() has already been called for this response.但是xp系统没问题...
<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p>    最近这个问题搞的很头疼,debug过了,action中执行到return "SUCCESS"就报出错误堆栈了,所以应该是jsp文件写的有问题,JSP文件中根本就没有发现getOutputStream(),引入的文件中也没有</p> <p>    而且更奇怪的是,在我开发的机器上和经理的电脑上都报这个错误,但是在业务的员工的电脑上没出现这个错误,所以推测是代码的某些部分可能存在不兼容的问题,因为我的电脑和经理的电脑是win7的系统,业务的员工的电脑是XP的系统,然后再测试人员的电脑上面进xp的虚拟机也不会报这样的问题</p> <p>    但是实在看不出来代码存在什么样的问题,百度了N条记录,说是加入2行代码的什么的,但是JSP文件中压根就没有getOutputStream()的语句存在.</p> <p>     贴上几段代码吧,希望大神能帮忙分析下问题:</p> <p>     首先是错误堆栈(win7系统):</p> <p>    </p> <pre name="code" class="java">2013-1-24 16:26:02 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:601) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:196) at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:157) at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118) at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:326) at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:342) at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspx_meth_c_005fotherwise_005f1(integrative_jsp.java:1180) at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspx_meth_c_005fchoose_005f1(integrative_jsp.java:1119) at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspx_meth_c_005fforEach_005f1(integrative_jsp.java:1079) at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspService(integrative_jsp.java:362) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505) at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:141) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at com.mangocity.ds.framework.common.controller.ActionInfoInterceptor.intercept(ActionInfoInterceptor.java:55) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:619) </pre> <p> action的代码,请求到的方法:</p> <p>   </p> <pre name="code" class="java">/** * 2008-05-06 V2.6.0 SR029 常锐 导出配送单信息 * * @return * @throws Exception */ public String exportExcelDeliveryBill() throws Exception { init(); List&lt;String&gt; unitIdList = new ArrayList&lt;String&gt;(); List&lt;String&gt; centerIdList = new ArrayList&lt;String&gt;(); // 判断是否有权限 if (null != getSystemType().getUnitList() &amp;&amp; 0 &lt; getSystemType().getUnitList().size() &amp;&amp; null != getSystemType().getCenterList() &amp;&amp; 0 &lt; getSystemType().getCenterList().size()) { for (int i = 0; i &lt; getSystemType().getUnitList().size(); i++) { unitIdList.add(((DeliveryUnit) getSystemType().getUnitList().get(i)).getId()); } for (int i = 0; i &lt; getSystemType().getCenterList().size(); i++) { centerIdList.add(((DeliveryCenter) getSystemType().getCenterList().get(i)).getId()); } showOther = ((IntegrativeService) getDBService()).getDeliveryBillList(getParams(), getPage(), unitIdList, centerIdList); } showDeliveryList = "yes"; HttpServletResponse response = super.getHttpServletResponse(); response.reset(); response.setContentType("application/vnd.ms-excel");// "application/msexcel" response.setCharacterEncoding("GBK"); response.setHeader("Content-disposition", "attachment;filename=配送单综合查询.xsl"); OutputStream outStrean = response.getOutputStream(); // 获取addressList List addressList = this.getSystemType().getAreaAddressList(); HSSFWorkbook demoWorkBook = ((IntegrativeService) getDBService()).exportExcelDeliveryBill( getParams(), unitIdList, centerIdList, addressList); demoWorkBook.write(outStrean); outStrean.flush(); outStrean.close(); return SUCCESS; }</pre> <p> </p> <p>返回到的JSP页面(发出请求的也是这个页面):</p> <p>   </p> <pre name="code" class="java">&lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt; &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; &lt;html&gt; &lt;head&gt; &lt;%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook" %&gt; &lt;%@ page import="com.opensymphony.xwork2.util.*" %&gt; &lt;%@ include file="/jsp/common/commonheader.jsp"%&gt; &lt;script src="&lt;%=webPath%&gt;/js/query.js"&gt;&lt;/script&gt; &lt;script src="&lt;%=webPath%&gt;/js/operate.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; function exportExcel() { if(checkQueryForm()) { queryform.action ="IntegrativeAction_exportExcelDeliveryBill.do"; queryform.submit(); } else return false; } function submitForm(){ if(checkQueryForm()) { queryform.action ="IntegrativeAction_queryByDeliveryBill.do"; queryform.submit(); } else return false; } function checkQueryForm() { if(!validate_form(queryform))return false; if(!checkDeliveryDate("billcreatedatebegin","billcreatedateend")){ return false; } if(!checkDeliveryDate("deliverydatebegin","deliverydateend")){ return false; } if(!checkDeliveryDate("deliveryendbegin","deliveryendend")){ return false; } var deliveryCD = queryform.elements["params.deliveryCD"].value; var orderCD = queryform.elements["params.orderCD"].value; var billcreatedatebegin = document.getElementById("billcreatedatebegin").value; var deliverydatebegin = document.getElementById("deliverydatebegin").value; var deliveryendbegin = document.getElementById("deliveryendbegin").value; var billcreatedateend = document.getElementById("billcreatedateend").value; var deliverydateend = document.getElementById("deliverydateend").value; var deliveryendend = document.getElementById("deliveryendend").value; var deliveryCenter = document.getElementById("deliveryCenter").value; if(deliveryCD=="" &amp;&amp; orderCD==""){ if(deliveryCenter==""){ alert("请使用以下三种方式中的一种进行查询:\n\n1.配送中心+配送单创建时间\n2.配送中心+预约配送时间\n3.配送中心+配送完成时间"); return false; } if(billcreatedatebegin=="" &amp;&amp; deliverydatebegin=="" &amp;&amp; deliveryendbegin=="") { alert("请使用以下三种方式中的一种进行查询:\n\n1.配送中心+配送单创建时间或\n2.配送中心+预约配送时间或\n3.配送中心+配送完成时间"); return false; } } if(better_time(billcreatedatebegin,billcreatedateend)&gt;180){ alert(document.getElementById("billcreatedateend").title+"不应超过六个月!"); return false; } if(better_time(deliverydatebegin,deliverydateend)&gt;180){ alert(document.getElementById("deliverydateend").title+"不应超过六个月!"); return false; } if(better_time(deliveryendbegin,deliveryendend)&gt;180){ alert(document.getElementById("deliveryendend").title+"不应超过六个月!"); return false; } return true; } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;form name="queryform" action="IntegrativeAction_queryByDeliveryBill.do" method="post"&gt; &lt;table width="20%" border="0" cellpadding="3" cellspacing="0"&gt; &lt;tr&gt; &lt;td height="18" &gt;&lt;strong&gt;&lt;img src="&lt;%=webPath%&gt;/images/arrow.gif" width="9" height="9"&gt; 综合查询&lt;/strong&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;table width="100%" class="table_bg" align="center" border="0" cellpadding="1" cellspacing="0"&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="hidden" id="showother" value="${showOther}" /&gt; &lt;input type="hidden" id="showotherinfo" value="yesorno" /&gt; &lt;input type="hidden" id="showdeliverylist" value="${showDeliveryList }" /&gt; &lt;input type="hidden" id="urgencyCopy" value="${params.urgency }" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td height="18"&gt;&lt;img src="&lt;%=webPath%&gt;/images/a2.gif" width="9" height="9"&gt; &lt;a href="#" onClick="javascript:playTableDelivery('deliverTbl')"&gt; &lt;font color="#FF9933"&gt;配送单信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;table width="100%" class="table_bg" align="center" border="0" cellpadding="1" cellspacing="0" style="display:block" id="deliverTbl"&gt; &lt;tr class="search_bg"&gt; &lt;td width="15%"&gt;配送单编号&lt;/td&gt; &lt;td width="32%"&gt;&lt;input type="text" name="params.deliveryCD" value="${params.deliveryCD}" maxlength="50"&gt;&lt;/td&gt; &lt;td width="18%"&gt;订单编号&lt;/td&gt; &lt;td width="35%"&gt;&lt;input type="text" name="params.orderCD" value="${params.orderCD}" maxlength="50"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td width="15%"&gt;订单来源&lt;/td&gt; &lt;td width="32%"&gt;&lt;select id="billResouceOne" name="params.billResouce"&gt; &lt;option value=""&gt;-全部-&lt;/option&gt; &lt;c:forEach var="billResouce" items="${systemType.billResouce}"&gt; &lt;c:choose&gt; &lt;c:when test="${billResouce.value == params.billResouce}"&gt; &lt;option value="${billResouce.value}" selected&gt;${billResouce.label}&lt;/option&gt; &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;option value="${billResouce.value}"&gt;${billResouce.label}&lt;/option&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;/c:forEach&gt; &lt;/select&gt;&lt;/td&gt; &lt;td&gt;配送方式&lt;/td&gt; &lt;td&gt;&lt;select name="params.deliveryType"&gt; &lt;option value=""&gt;-全部-&lt;/option&gt; &lt;c:forEach var="deliveryType" items="${systemType.deliveryType}"&gt; &lt;c:choose&gt; &lt;c:when test="${deliveryType.value == params.deliveryType}"&gt; &lt;option value="${deliveryType.value}" selected&gt;${deliveryType.label}&lt;/option&gt; &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;option value="${deliveryType.value}"&gt;${deliveryType.label}&lt;/option&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;/c:forEach&gt; &lt;/select&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;配送中心&lt;/td&gt; &lt;td&gt;&lt;select name="params.centerCD" id="deliveryCenter"&gt; &lt;option value=""&gt;--全部--&lt;/option&gt; &lt;/select&gt;&lt;/td&gt; &lt;td&gt;配送单位&lt;/td&gt; &lt;td&gt;&lt;select name="params.deliveryUnitCD" id="deliveryUnit"&gt; &lt;option value=""&gt;--全部--&lt;/option&gt; &lt;/select&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;配送任务状态&lt;/td&gt; &lt;td&gt;&lt;select name="params.deliveryState"&gt; &lt;option value=""&gt;-全部-&lt;/option&gt; &lt;c:forEach var="deliveryStateTwo" items="${systemType.deliveryState}"&gt; &lt;c:choose&gt; &lt;c:when test="${deliveryStateTwo.value == params.deliveryState}"&gt; &lt;option value="${deliveryStateTwo.value}" selected&gt;${deliveryStateTwo.label}&lt;/option&gt; &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;option value="${deliveryStateTwo.value}"&gt;${deliveryStateTwo.label}&lt;/option&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;/c:forEach&gt; &lt;/select&gt;&lt;/td&gt; &lt;td&gt;收款任务状态&lt;/td&gt; &lt;td&gt;&lt;select name="params.gatheringState"&gt; &lt;option value=""&gt;-全部-&lt;/option&gt; &lt;c:forEach var="deliveryState" items="${systemType.deliveryState}"&gt; &lt;c:choose&gt; &lt;c:when test="${deliveryState.value == params.gatheringState}"&gt; &lt;option value="${deliveryState.value}" selected&gt;${deliveryState.label}&lt;/option&gt; &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;option value="${deliveryState.value}"&gt;${deliveryState.label}&lt;/option&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;/c:forEach&gt; &lt;/select&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;配送员姓名&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.delivererName" value="${params.delivererName}" maxlength="50"&gt;&lt;/td&gt; &lt;td&gt;收件人&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.addresseeName" value="${params.addresseeName}" maxlength="50"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;配送接票时间&lt;/td&gt; &lt;td&gt;&lt;input type="text" id="deliveryconnect" name="params.deliveryConnect" value="${params.deliveryConnect }" size="15"&gt; &lt;a href="javascript:showCalendar('deliveryconnect',false,'deliveryconnect')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;收件人联系电话&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.addresseePhone" value="${params.addresseePhone}" maxlength="50"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;会员编号&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.memberName" value="${params.memberName}" maxlength="50"&gt;&lt;/td&gt; &lt;td&gt;收件人手机号&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.addresseeMobile" value="${params.addresseeMobile}" maxlength="50"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;第三方收件人&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.linkman" value="${params.linkman}" maxlength="50"&gt;&lt;/td&gt; &lt;td&gt;第三方收件人联系电话&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.linkmanPhone" value="${params.linkmanPhone}" maxlength="50"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;配送单创建时间&lt;/td&gt; &lt;td&gt;&lt;input type="text" size="10" id="billcreatedatebegin" name="params.billCreateDateBegin" value="${params.billCreateDateBegin }" dataType="date"&gt; &lt;a href="javascript:showCalendar('billcreatedatebegin',false,'billcreatedatebegin','billcreatedateend','billcreatedateend')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt; &lt;input type="text" size="10" id="billcreatedateend" name="params.billCreateDateEnd" value="${params.billCreateDateEnd }" title="配送单创建时间" dataType="date"&gt; &lt;a href="javascript:showCalendar('billcreatedateend',false,'billcreatedateend')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;预约配送时间&lt;/td&gt; &lt;td&gt;&lt;input type="text" size="10" id="deliverydatebegin" name="params.deliveryDateBegin" value="${params.deliveryDateBegin}" dataType="date"&gt; &lt;a href="javascript:showCalendar('deliverydatebegin',false,'deliverydatebegin','deliverydateend','deliverydateend')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt; &lt;input type="text" size="10" id="deliverydateend" name="params.deliveryDateEnd" value="${params.deliveryDateEnd }" title="预约配送时间" dataType="date"&gt; &lt;a href="javascript:showCalendar('deliverydateend',false,'deliverydateend')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td&gt;紧急程度&lt;/td&gt; &lt;td&gt;&lt;select id="urgencyOne" name="params.urgency"&gt; &lt;option value=""&gt;-全部-&lt;/option&gt; &lt;c:forEach var="urgency" items="${systemType.urgencyType}"&gt; &lt;c:choose&gt; &lt;c:when test="${urgency.value == params.urgency}"&gt; &lt;option value="${urgency.value}" selected&gt;${urgency.label}&lt;/option&gt; &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;option value="${urgency.value}"&gt;${urgency.label}&lt;/option&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;/c:forEach&gt; &lt;/select&gt;&lt;/td&gt; &lt;td&gt;配送完成时间&lt;/td&gt; &lt;td&gt;&lt;input type="text" size="10" id="deliveryendbegin" name="params.deliveryEndBegin" value="${params.deliveryEndBegin}" dataType="date"&gt; &lt;a href="javascript:showCalendar('deliveryendbegin',false,'deliveryendbegin','deliveryendend','deliveryendend')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt; &lt;input type="text" size="10" id="deliveryendend" name="params.deliveryEndEnd" value="${params.deliveryEndEnd }" title="配送完成时间" dataType="date"&gt; &lt;a href="javascript:showCalendar('deliveryendend',false,'deliveryendend')"&gt; &lt;img src="&lt;%=webPath%&gt;/images/i_date.gif" width="29" height="22" align="middle" border=0&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt;&lt;td&gt;配送地址&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="params.deliveryAddress" value="${params.deliveryAddress}" maxlength="100"&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td height="18" colspan="4" valign="middle"&gt;&lt;img src="&lt;%=webPath%&gt;/images/a2.gif" width="9" height="9"&gt; &lt;a href="#" onClick="javascript:playTableOther('otherTbl')"&gt; &lt;font color="#FF9933"&gt;其他信息&lt;/font&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;table width="100%" class="table_bg " align="center" border="0" cellpadding="1" cellspacing="0" style="display:none" id="otherTbl"&gt; &lt;tr class="search_bg"&gt; &lt;td width="15%"&gt;异常问题大类&lt;/td&gt; &lt;td&gt;&lt;select name="params.questionBigCode" id="billProblemBigType"&gt; &lt;option value=""&gt;--全部--&lt;/option&gt; &lt;/select&gt;&lt;/td&gt; &lt;td width="15%"&gt;异常问题小类&lt;/td&gt; &lt;td&gt;&lt;select name="params.questionSmallCode" id="billProblemSmallType" style="display:inline;width:340"&gt; &lt;option value=""&gt;--全部--&lt;/option&gt; &lt;/select&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td width="15%"&gt;问题处理&lt;/td&gt; &lt;td width="35%"&gt;&lt;input type="text" name="params.processMethod" value="${params.processMethod }"&gt;&lt;/td&gt; &lt;td&gt;建单原因&lt;/td&gt; &lt;td colspan="3"&gt;&lt;input type="text" name="params.createBillCause" value="${params.createBillCause }"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr class="search_bg"&gt; &lt;td align="right" colspan="4"&gt; &lt;input type="button" class="btn" value="导 出 EXCEL" style="width:100px" onClick="exportExcel();"&gt; &amp;nbsp; &lt;input type="submit" class="btn" value="查 询" onClick="return submitForm();"&gt; &amp;nbsp; &lt;input type="button" class="btn" value="重 置" onClick="javascript:clearForm('queryform');"&gt; &amp;nbsp; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;table width="20%" border="0" cellpadding="3" cellspacing="0"&gt; &lt;tr&gt; &lt;td height="18" &gt;&lt;strong&gt;&lt;img src="&lt;%=webPath%&gt;/images/arrow.gif" width="9" height="9"&gt; 结果列表&lt;/strong&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;table width="100%" class="table_bg" align="center" border="1" cellpadding="1" cellspacing="0" id="orderlist"&gt; &lt;tr align="center" class="sub_bg"&gt; &lt;td width="1%"&gt;紧急度&lt;/td&gt; &lt;td width="10%"&gt;订单编号&lt;br&gt;订单类型&lt;/td&gt; &lt;td width="11%"&gt;配送单编号&lt;br&gt;配送单创建时间&lt;/td&gt; &lt;td width="8%"&gt;会员类型&lt;br&gt;VIP级别&lt;/td&gt; &lt;td width="6%"&gt;配送单位&lt;/td&gt; &lt;td width="9%"&gt;配送方式&lt;br&gt;任务类型&lt;/td&gt; &lt;td width="8%"&gt;配送城市&lt;br&gt;/城区&lt;/td&gt; &lt;td width="10%"&gt;配送地址&lt;/td&gt; &lt;td width="10%"&gt;配送时间&lt;/td&gt; &lt;td width="8%"&gt;配送员姓名&lt;br&gt;联系电话&lt;/td&gt; &lt;td width="7%"&gt;截余时间&lt;/td&gt; &lt;td width="6%"&gt;配送任务状态&lt;/td&gt; &lt;td width="6%"&gt;收款任务状态&lt;/td&gt; &lt;/tr&gt; &lt;c:forEach var="deliveryBill" items="${page.pageList}"&gt; &lt;tr align="center" class="row_bg"&gt; &lt;td&gt;&lt;c:forEach var="t" items="${systemType.urgencyType}"&gt; &lt;c:if test="${deliveryBill[0].urgency == t.value}"&gt; &lt;c:if test="${t.label == '紧急'}"&gt; &lt;img src="${webPath}/images/dot_11.gif"&gt;&lt;/c:if&gt; &lt;c:if test="${t.label == '非常紧急'}"&gt; &lt;img src="${webPath}/images/dot_12.gif"&gt;&lt;/c:if&gt; &lt;/c:if&gt; &lt;/c:forEach&gt; &lt;/td&gt; &lt;td&gt;${deliveryBill[0].orderCD}&lt;br&gt; &lt;c:forEach var="b" items="${systemType.billResouce}"&gt; &lt;c:if test="${deliveryBill[0].billResouce == b.value}"&gt; ${b.label} &lt;/c:if&gt; &lt;/c:forEach&gt; &lt;/td&gt; &lt;td&gt;&lt;a href="#" onClick="viewDetailForQuery('${deliveryBill[0].id}','9')"&gt;${deliveryBill[0].deliveryCD}&lt;/a&gt;&lt;br&gt;${deliveryBill[0].entityCreateDate} ${fn:substring(deliveryBill[0].entityCreateTime, 0, 5)}&lt;/td&gt; &lt;td&gt; &lt;c:forEach var="memberType" items="${systemType.memberType}"&gt; &lt;c:if test="${memberType.value eq deliveryBill[0].memberLevel}"&gt; ${memberType.label} &lt;/c:if&gt; &lt;/c:forEach&gt;&lt;br&gt; &lt;c:choose&gt; &lt;c:when test="${deliveryBill[0].vipType eq '1'}"&gt; &lt;font class="redone"&gt;*&lt;/font&gt; &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].vipType eq '2'}"&gt; &lt;font class="redone"&gt;**&lt;/font&gt; &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].vipType eq '3'}"&gt; &lt;font class="redone"&gt;***&lt;/font&gt; &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].vipType eq '4'}"&gt; &lt;font class="redone"&gt;****&lt;/font&gt; &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].vipType eq '5'}"&gt; &lt;font class="redone"&gt;*****&lt;/font&gt; &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].vipType eq '6'}"&gt; &lt;font class="redone"&gt;******&lt;/font&gt; &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].vipType eq '7'}"&gt; &lt;!--img src="&lt;%=request.getContextPath()%&gt;/images/star7.gif"&gt;--&gt; &lt;/c:when&gt; &lt;/c:choose&gt; &lt;/td&gt; &lt;td&gt;${deliveryBill[2]}&lt;/td&gt; &lt;td&gt;&lt;c:forEach var="t" items="${systemType.deliveryType}"&gt; &lt;c:if test="${deliveryBill[0].deliveryType == t.value}"&gt; ${t.label} &lt;/c:if&gt; &lt;/c:forEach&gt; &lt;br&gt; &lt;c:forEach var="t" items="${systemType.taskType}"&gt; &lt;c:if test="${deliveryBill[1] == t.value}"&gt;${t.label}&lt;/c:if&gt; &lt;/c:forEach&gt; &lt;/td&gt; &lt;td&gt;&lt;c:forEach var="deliveryCityID" items="${systemType.areaAddressList}"&gt; &lt;c:if test="${deliveryBill[0].deliveryCityID == deliveryCityID.code}"&gt; ${deliveryCityID.name} &lt;/c:if&gt; &lt;/c:forEach&gt; &lt;br&gt;&lt;c:forEach var="areaItem" items="${systemType.areaAddressList}"&gt; &lt;c:if test="${areaItem.code eq deliveryBill[0].deliveryZoneID &amp;&amp; areaItem.type eq '4' &amp;&amp; areaItem.fatherCode eq deliveryBill[0].deliveryCityID}"&gt; ${areaItem.name} &lt;/c:if&gt; &lt;/c:forEach&gt; &lt;/td&gt; &lt;td title="${deliveryBill[0].deliveryAddress}"&gt; ${fn:substring(deliveryBill[0].deliveryAddress, 0, 12)} &lt;/td&gt; &lt;td&gt;${deliveryBill[0].deliveryDate}&lt;br&gt; ${fn:substring(deliveryBill[0].dsBeginTime, 0, 5)}-${fn:substring(deliveryBill[0].dsEndTime, 0, 5)}&lt;/td&gt; &lt;td&gt;${deliveryBill[3]}&lt;br&gt;${deliveryBill[4]}&lt;/td&gt; &lt;td id="${deliveryBill[0].id}~${deliveryBill[1]}"&gt;&lt;c:choose&gt; &lt;c:when test="${deliveryBill[0].deliveryState == 8 || (deliveryBill[0].deliveryState == 0 &amp;&amp; deliveryBill[0].gatheringState == 8 )}"&gt; 已完成 &lt;/c:when&gt; &lt;c:when test="${deliveryBill[0].deliveryState == 13 || deliveryBill[0].gatheringState == 13}"&gt; 已取消 &lt;/c:when&gt; &lt;c:otherwise&gt; &lt;script type="text/javascript"&gt; getDiffTime('${deliveryBill[0].id}~${deliveryBill[1]}', '${deliveryBill[0].deliveryDate}', '${deliveryBill[0].dsBeginTime}'); &lt;/script&gt; &lt;/c:otherwise&gt; &lt;/c:choose&gt; &lt;/td&gt; &lt;td&gt;&lt;c:forEach var="ds" items="${systemType.deliveryState}"&gt; &lt;c:if test="${deliveryBill[0].deliveryState == ds.value}"&gt;${ds.label}&lt;/c:if&gt; &lt;/c:forEach&gt; &lt;/td&gt; &lt;td&gt;&lt;c:forEach var="ds" items="${systemType.deliveryState}"&gt; &lt;c:if test="${deliveryBill[0].gatheringState == ds.value}"&gt;${ds.label}&lt;/c:if&gt; &lt;/c:forEach&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/c:forEach&gt; &lt;tr height="30"&gt; &lt;td colspan="15" align="right"&gt;&lt;c:set value="queryform" var="form_name" scope="request" /&gt; &lt;jsp:include page="/jsp/common/page2.jsp" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/form&gt; &lt;%@ include file="/jsp/common/commontail.jsp"%&gt; &lt;/body&gt; &lt;script&gt; init(); &lt;/script&gt; &lt;/html&gt; &lt;script language="javascript"&gt; var liandong=new CLASS_LIANDONG_YAO(array) liandong.firstSelectChange("根目录","deliveryCenter","${params.centerCD}"); liandong.subSelectChange("deliveryCenter","deliveryUnit","${params.deliveryUnitCD}"); &lt;/script&gt; &lt;script type="text/javascript"&gt; var array=new Array(); &lt;c:set scope="page" var="problemTypeBigSize" value="0"/&gt; &lt;c:set scope="page" var="problemTypeSmallSize" value="0"/&gt; &lt;c:forEach var="billProblemBigType" items="${systemType.billProblemTypeList}" &gt; &lt;c:if test="${billProblemBigType.classlevel==1}" &gt; array[&lt;c:out value='${problemTypeBigSize}'/&gt;]=new Array(); array[&lt;c:out value='${problemTypeBigSize}'/&gt;][0]="&lt;c:out value='${billProblemBigType.code}'/&gt;"; array[&lt;c:out value='${problemTypeBigSize}'/&gt;][1]="根目录"; array[&lt;c:out value='${problemTypeBigSize}'/&gt;][2]="&lt;c:out value='${billProblemBigType.questionDepict}'/&gt;"; &lt;c:set scope="page" var="problemTypeBigSize" value="${problemTypeBigSize+1}"/&gt; &lt;/c:if&gt; &lt;/c:forEach&gt; &lt;c:forEach var="billProblemSmallType" items="${systemType.billProblemTypeList}" &gt; &lt;c:if test="${billProblemSmallType.classlevel==2}" &gt; array[&lt;c:out value='${problemTypeSmallSize+problemTypeBigSize}'/&gt;]=new Array(); array[&lt;c:out value='${problemTypeSmallSize+problemTypeBigSize}'/&gt;][0]="&lt;c:out value='${billProblemSmallType.code}'/&gt;"; array[&lt;c:out value='${problemTypeSmallSize+problemTypeBigSize}'/&gt;][1]="&lt;c:out value='${billProblemSmallType.problemType.code}'/&gt;"; array[&lt;c:out value='${problemTypeSmallSize+problemTypeBigSize}'/&gt;][2]="&lt;c:out value='${billProblemSmallType.questionDepict}'/&gt;"; &lt;c:set scope="page" var="problemTypeSmallSize" value="${problemTypeSmallSize+1}"/&gt; &lt;/c:if&gt; &lt;/c:forEach&gt; var liandong=new CLASS_LIANDONG_YAO(array) liandong.firstSelectChange("根目录","billProblemBigType","${params.questionBigCode}"); liandong.subSelectChange("billProblemBigType","billProblemSmallType","${params.questionSmallCode}"); &lt;/script&gt; </pre> <p> </p> <p>感激不尽</p> </div>
新手来求助,关于C#服务器端与客户端通讯的问题
string strReceive = System.Text.Encoding.Default.GetString(ReceiveBuff, 0, 256);//strReceive是接收到的客户端发的消息内容  char[] ch1 = strReceive.ToCharArray(0, 1);//取这条消息的第一个字符  if (ch1[0]!='d')//如果第一个字符为d {   (补充说明:客户端发的d开头的消息的格式,就是d**, **指代一个用户名)   这里的内容:获取strReceive字符串自第2个字符开始至最后,即获取 用户名,把获取的新的字符串赋给string sss;连接数据库,执行SQL命令,就是把 该用户名的状态设置成下线。 } if(ch1[0]!='d')//如果第一个字符不为'd' {     (补充说明:客户端发的不为d开头的消息的格式,就是 **,##    其中**指代用户名,##指代密码)      这里的内容:分别获取strReceive字符串的 **,##,赋给新的变量,连接数据库,执行SQL命令,对用户进行登录验证,若验证通过则把其状态设置成上线。否则返回登录失败给客户端。 } 感觉这样子,逻辑上没有问题了呀,接下来说说运行结果。 1.客户端发送消息  d陈杰   给服务器 服务器端的界面上有设置了一个按钮,单击后能导出当前数据库的内容,所以当服务器收到客户端的这条消息后,服务器上导出的数据库中陈杰的状态更改为下线了。 2.客户端发送消息  陈杰,cj  给服务器 .验证通过,服务器则给客户端返回成功的消息,并且服务器上导出的数据库里陈杰的状态也更改为上线了。 【这样子的顺序是OK的,但不是我想要的结果,我想要先客户端发送用户名和密码,然后客户端再发该用户要下线的消息,但是问题来了,请看下面】 .{我把上面这样子执行过的关掉,所有都重新开始运行} .1.客户端发送 消息   张明,zm  给服务器    . .通过验证了,服务器端导出的数据库,张明的状态也显示为上线了。但是发现: 我在服务器界面上放的一个textbox, 里面代码 if(ch1[0]=='d')  { string sss = strReceive.Substring(1, revLength - 1);textBox1.Text = sss;UserDown(sss);}   它是在这段里用的,不是当ch1[0]=='d'时,它才会有内容吗?明明发的不是d开头的,它为什么还显示内容,而且显示的吧,张明和zm中间没了逗号,也不是客户端发的内容。 下面客户端将要发送 用户下线的消息了。 2.客户端发送消息  d张明  给服务器 .点击服务器上的导出按钮,显然导出的数据库上张明的状态并没更新为下线。 . .【整个运行过程都没有报一点错,但是为什么2次客户端发送的消息顺序不一样,就导致它判断客户端发送的消息是否是d开头判断错误了呢。】 .帮忙看看它究竟是哪里产生了问题呢。 这是关于什么阻塞么,但是同样的内容只有执行的顺序不一样呀。本人第一次接触这上面,不懂究竟是哪里的问题,怎么解决了,求大神指点一下撒。
关于安卓页面跳转的问题
做了两个页面与页面跳转按钮,二页面想使用ListActivity,但是继承了ListActivity类后闪退 继承Activity时运行正常,但不能看到List效果,请大神帮忙看下代码,感谢 DEBUG 线程 [main](已暂挂(异常 RuntimeException)) ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) 行: 3254 ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) 行: 3350 ActivityThread.access$1100(ActivityThread, ActivityThread$ActivityClientRecord, Intent) 行: 223 ActivityThread$H.handleMessage(Message) 行: 1794 ActivityThread$H(Handler).dispatchMessage(Message) 行: 102 Looper.loop() 行: 148 ActivityThread.main(String[]) 行: 7224 Method.invoke(Object, Object...) 行: 不可用 [本机方法] ZygoteInit$MethodAndArgsCaller.run() 行: 1230 ZygoteInit.main(String[]) 行: 1120 报错日志 04-11 10:03:01.957: E/MotionRecognitionManager(30956): mSContextService = android.hardware.scontext.ISContextService$Stub$Proxy@b530bca 04-11 10:03:01.967: E/MotionRecognitionManager(30956): motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@82fc13b 04-11 10:03:01.967: E/MotionRecognitionManager(30956): motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@82fc13b 04-11 10:03:01.967: D/AndroidRuntime(30956): Shutting down VM 04-11 10:03:01.967: E/AndroidRuntime(30956): FATAL EXCEPTION: main 04-11 10:03:01.967: E/AndroidRuntime(30956): Process: com.example.audiorecord, PID: 30956 04-11 10:03:01.967: E/AndroidRuntime(30956): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.audiorecord/com.example.audiorecord.Activity02}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3254) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.access$1100(ActivityThread.java:223) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.os.Handler.dispatchMessage(Handler.java:102) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.os.Looper.loop(Looper.java:148) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.main(ActivityThread.java:7224) 04-11 10:03:01.967: E/AndroidRuntime(30956): at java.lang.reflect.Method.invoke(Native Method) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 04-11 10:03:01.967: E/AndroidRuntime(30956): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ListActivity.onContentChanged(ListActivity.java:243) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.Activity.setContentView(Activity.java:2388) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.example.audiorecord.Activity02.onCreate(Activity02.java:38) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.Activity.performCreate(Activity.java:6877) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) 04-11 10:03:01.967: E/AndroidRuntime(30956): ... 9 more Activity1: package com.example.audiorecord; import java.io.File; import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.content.Intent; public class RecordActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); super.onCreate(savedInstanceState); /* 设置显示main.xml布局*/ setContentView(R.layout.main); /* findViewById(R.id.button1)取得布局main.xml中的button1 */ Button button = (Button) findViewById(R.id.button1); /* 监听button的事件信息*/ button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 新建一个Intent对象*/ Intent intent = new Intent(); /* 指定intent要启动的类*/ intent.setClass(RecordActivity.this, Activity02.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ RecordActivity.this.finish(); } }); } } Activity2 package com.example.audiorecord; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.ListActivity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; public class Activity02 extends ListActivity{ //声明 private List<String> items = null;//存放名称 private List<String> paths = null;//存放路径 private String rootPath = "/"; private TextView tv; private Button Back; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置显示main2布局*/ setContentView(R.layout.main2); /* findViewById(R.id.button2)取得布局main.xml中的button2 */ /* 监听button的事件信息*/ tv = (TextView) this.findViewById(R.id.TextView); this.getFileDir(rootPath);//获取rootPath目录下的文件. Back = (Button) findViewById(R.id.back); Back.setOnClickListener(new BackListener()); } class BackListener implements OnClickListener { public void onClick(View v) { Intent intent = new Intent(); /* 指定intent要启动的类*/ intent.setClass(Activity02.this, RecordActivity.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity02.this.finish(); } } public void getFileDir(String filePath) { try{ this.tv.setText("当前路径:"+filePath);// 设置当前所在路径 items = new ArrayList<String>(); paths = new ArrayList<String>(); File f = new File(filePath); File[] files = f.listFiles();// 列出所有文件 // 如果不是根目录,则列出返回根目录和上一目录选项 if (!filePath.equals(rootPath)) { items.add("返回根目录"); paths.add(rootPath); items.add("返回上一层目录"); paths.add(f.getParent()); } // 将所有文件存入list中 if(files != null){ int count = files.length;// 文件个数 for (int i = 0; i < count; i++) { File file = files[i]; items.add(file.getName()); paths.add(file.getPath()); } } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); this.setListAdapter(adapter); }catch(Exception ex){ ex.printStackTrace(); } } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); String path = paths.get(position); File file = new File(path); //如果是文件夹就继续分解 if(file.isDirectory()){ this.getFileDir(path); }else{ new AlertDialog.Builder(this).setTitle("提示").setMessage(file.getName()+" 是一个文件!").setPositiveButton("OK", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which) { } }).show(); } }} MANIFEST <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.audiorecord" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".RecordActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Activity02"></activity> </application> </manifest>
php测试mysql类失败,哪里错了?
运行index.php时一片空白,什么提示都没有;调试时发现mysql类中的select_db($db) 方法和后面的都未得到执行 大神帮忙看看 ,谢谢! ``` <?php //数据库类 class mysql extends db { private static $ins = NULL; private $conn = NULL; private $conf = array(); protected function __construct() { $this->conf = conf::getIns(); $this->connect($this->conf->host,$this->conf->user,$this->conf->pwd); $this->select_db($this->conf->db); $this->setChar($this->conf->char); } public function __destruct() { } public static function getIns() { if(!(self::$ins instanceof self)) { self::$ins = new self(); } return self::$ins; } public function connect($h,$u,$p) { $this->conn =@mysql_connect($h,$u,$p); if(!$this->conn) { $err = new Exception('连接失败'); throw $err; } } protected function select_db($db) { $sql = 'use '.$db; $this->query($sql); } protected function setChar($char) { $sql = 'set names ' . $char; return $this->query($sql); } public function query($sql) { $rs = mysql_query($sql,$this->conn); log::write($sql); return $rs; } public function autoExecute($table,$arr,$mode='insert',$where = ' where 1 limit 1') { /* insert into tbname (username,passwd,email) values ('',) /// 把所有的键名用','接起来 // implode(',',array_keys($arr)); // implode("','",array_values($arr)); */ if(!is_array($arr)) { return false; } if($mode == 'update') { $sql = 'update ' . $table .' set '; foreach($arr as $k=>$v) { $sql .= $k . "='" . $v ."',"; } $sql = rtrim($sql,','); $sql .= $where; return $this->query($sql); } $sql = 'insert into ' . $table . ' (' . implode(',',array_keys($arr)) . ')'; $sql .= ' values (\''; $sql .= implode("','",array_values($arr)); $sql .= '\')'; return $this->query($sql); } public function getAll($sql) { $rs = $this->query($sql); $list = array(); while($row = mysql_fetch_assoc($rs)) { $list[] = $row; } return $list; } public function getRow($sql) { $rs = $this->query($sql); return mysql_fetch_assoc($rs); } public function getOne($sql) { $rs = $this->query($sql); $row = mysql_fetch_row($rs); return $row[0]; } // 返回影响行数的函数 public function affected_rows() { return mysql_affected_rows($this->conn); } // 返回最新的auto_increment列的自增长的值 public function insert_id() { return mysql_insert_id($this->conn); } } ``` ``` <?php //file:index.php 首页面 //所有用户直接访问到的这些页面必须先加载init.php require('./include/init.php'); //测试数据库 $mysql=mysql::getIns(); var_dump($mysql); ``` ``` <?php //配置文件 $_CFG=array(); $_CFG['host']='locallhost'; $_CFG['user']='root'; $_CFG['pwd']='hooray'; $_CFG['db'] = 'boolshop'; $_CFG['char'] = 'utf8'; ?> ``` ``` <?php /** file:conf.class.php 配置文件读取类 **/ class conf{ protected static $ins=null; protected $data=array(); final protected function __construct(){ //一次性配置文件信息,赋给data include(ROOT.'include/config.inc.php'); $this->data=$_CFG; } final protected function __clone(){ } public static function getIns(){ if(self::$ins instanceof self){ return self::$ins; } else{ self::$ins=new self(); return self::$ins; } } // 用魔术方法获取data信息 public function __get($key){ if(array_key_exists($key,$this->data)){ return $this->data[$key]; }else{ return null; } } //用魔术方法,在运行时动态添加和更改配置 public function __set($key,$value) { $this->data[$key]=$value; } } $conf = conf::getIns(); ?> ``` ``` <?php // fiel:init.php 框架初始化 //初始化当前的路径 //echo substr(str_replace('\\','/',__FILE__),0,-8); define('ROOT',str_replace ('\\','/',dirname(dirname(__FILE__)).'/')); define('debug',true); require(ROOT.'include/db.class.php'); require(ROOT.'include/mysql.class.php'); require(ROOT.'include/conf.class.php'); require(ROOT.'include/log.class.php'); require(ROOT.'include/lib_base.php'); //过滤参数 $_GET =_addslashes($_GET); $_POST=_addslashes($_POST); $_COOKIE=_addslashes($_COOKIE); // 设置报错级别 if(defined('DEBUG')){ error_reporting(E_ALL);} else{ error_reporting(0);} ?> ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
Android 9.0系统新特性,对刘海屏设备进行适配
其实Android 9.0系统已经是去年推出的“老”系统了,这个系统中新增了一个比较重要的特性,就是对刘海屏设备进行了支持。一直以来我也都有打算针对这个新特性好好地写一篇文章,但是为什么直到拖到了Android 10.0系统都发布了才开始写这篇文章呢?当然,一是因为我这段时间确实比较忙,今年几乎绝大部分的业余时间都放到写新书上了。但是最主要的原因并不是这个,而是因为刘海屏设备的适配存在一定的特殊性
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问