jsp页面中无法显示数据库的表内容,求大神解答。

java文件
package xscj_bean;
import java.sql.*;
public class SQLServerConnBean {
private Statement stmt = null;
private Connection conn = null;
ResultSet rs = null;
//构造函数
public SQLServerConnBean () { }
public void OpenConn( ) throws Exception
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

String url = "jdbc:sqlserver://localhost:1433;databaseName=classcircle";
String user = "sa";
String password = "123456789123456";
conn = DriverManager.getConnection( url, user, password );

}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}

}
//执行查询类的SQL语句,有返回集
public ResultSet executeQuery(String sql)
{
rs = null;
try
{
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE
,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(sql);
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}
return rs;
}
//关闭对象
public void closeStmt()
{
try
{
stmt.close();
}
catch(SQLException e)
{
System.err.println("Date.executeQuery: " + e.getMessage());
}
}
public void closeConn()
{
try
{
conn.close();
}
catch(SQLException e)
{
System.err.println("Data.executeQuery: " + e.getMessage());
}
}
}

 jsp文件
 <%@ page contentType="text/html; charset=utf-8"%>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="SqlBean" scope="page" class="xscj_bean.SQLServerConnBean" />
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>JDBC连接SQL Server数据库</title>
    <style type="text/css">
    <!--
        .style1{
            color:#ff0000;
            font-size:24px;
        }
    -->
    </style>
</head> 
<body>
    <div align="center">
        <span class="style1">JDBC连接SQL Server数据库</span><br><hr><br>
    </div>
    <table border="2" bordercolor="#ffcccc" align="center">
        <tr bgcolor="cccccc" align="center">
            <td>学号</td>
            <td>姓名</td>
            <td>专业</td>
            <td>总学分</td>
        </tr>
        <%
            //查询XSB表中XH,XM,ZY和ZXF字段的前10条记录
            String sql="select top 10* From student";
            SqlBean.OpenConn( );                    //调用SqlBean中加载JDBC驱动的成员函数
            ResultSet  rs=SqlBean.executeQuery(sql);    //取得结果集

            while( rs.next( ) )
            {
        %>
        <tr>
            <td><%=rs.getString("username")%></td>
            <td><%=rs.getInt("password")%></td>
            <td><%=rs.getInt("schoolnumber")%></td>
            <td><%=rs.getInt("ZXF")%></td>
        </tr>
        <%
            }
        %>
        <%
            out.print("数据库操作成功,恭喜你!");
            rs.close();
            SqlBean.closeStmt();
            SqlBean.closeConn();
        %>
    </table>
</body>
</html>

结果却是这样的
图片说明
小白求助啊!!!!

2个回答

在后台就应该将数据放好 这块应该写在后台

<%=rs.getString("username")%>
<%=rs.getInt("password")%>
<%=rs.getInt("schoolnumber")%>
<%=rs.getInt("ZXF")%>
用bean封装起来 前台页面直接取值
Gr_lbxx
Gr_lbxx 回复qq_37011814: 从你的<% %>都写在后台 点击时现代后台完成这些功能 保存值 然后再跳转页面 页面上取值
接近 3 年之前 回复
qq_37011814
码码码码农 放在后台该怎么写,应该插入在什么位置0.0
接近 3 年之前 回复

现在哪儿还在前台写这些东西,后台写多简单。错误在

里面不应该写<%= %>,应该用<%%>
qq_37011814
码码码码农 去掉=号,值都变空白了
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java测试代码如何转成JSP页面
在GITHUB上下载了个java代码,有后台代码和测试代码,但是代码很多都不知道怎么转换成JSP页面,他的数据库是一个云端的数据库,有网址,能像数据库中发送数据,但是要否和某种规范,这个JSP页面要怎么弄呢,小菜鸟一只,求大神解答
新手关于jsp页面连接数据库的问题
小弟想用jsp文件输入数据到mysql数据库中 这是代码 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " %> <html> <body> <% Class.forName("com.mysql.cj.jdbc.Driver"); //加载驱动 Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=true","root","123456");//创建连接 String username = request.getParameter("user") ; String password = request.getParameter("password") ; String sql = "insert into users(username , password) values('"+username+"','"+password+"')"; out.print("<table border='1' align='center'><tr><td>"+password+"</td></tr></table>"); PreparedStatement user = connection.preparedStatement(sql); user.executeUpdate(); %> </body> </html> 这是报错信息 An error occurred at line: [13] in the jsp file: [/zhuce.jsp] connection cannot be resolved 10: String password = request.getParameter("password") ; 11: String sql = "insert into users(username , password) values('"+username+"','"+password+"')"; 12: out.print("<table border='1' align='center'><tr><td>"+password+"</td></tr></table>"); 13: PreparedStatement user = connection.preparedStatement(sql); 14: user.executeUpdate(); 15: %> 16: </body> 刚开始接触web开发,求大神解答
html中textarea换行存入数据库后再提取显示是未成功换行
![图片说明](https://img-ask.csdn.net/upload/201705/25/1495679787_941554.png) 这个图片显示的是存入数据库的内容(忽略乱码),目测是有换行的,基本上符合输入的格式,但是在网页中提取出来显示时,却没有换行,只有一个空格,如下图 ![图片说明](https://img-ask.csdn.net/upload/201705/25/1495679574_695628.png) 有没有大神帮忙解答一下,下面是我在jsp页面中显示内容的代码片段: ``` <td colspan="6"> <div style=" overflow:hidden;line-height:35px;text-align:left; margin-left:20px;" class="tabContent">${resumeNew.otherEXP }</div> </td> ```
jsp执行sql查询并取出结果 怎么实现循环遍历?求例子 初学
如题 sql表中有很多很多数据,想要查询并用表格的形式来显示出结果 已经连接上了数据库,可以执行查询语句,就是不知道该用什么方式把整个语句查询语句结果传递到显示结果的页面并且以表格的形式展现出来 String all="select sum(iNumb) as iNumbHj,sum (rMoney) as rMoneyHj from [Data_ShopDailyBill_View] group by sShopCode"; Statement stmt1 = conn.createStatement(); ResultSet c = stmt1.executeQuery(all); 就像上面的语句 怎么把执行查询语句得出来的这样一个数据 传到另一个显示界面中 并且用表格展现出来 我之前想用session一条一条传 发现根本不可能 数据很多条 求大神解答!!!急
jbpm上传打包好的zip文件,然后上传完说发布流程文件失败,求大神解答
工具:MyEclipse10.0 jbpm4.4 数据库版本是Mysql5.1 下面是jsp页面代码 jsp页面代码 <%@page import="java.util.zip.ZipInputStream"%> <%@page import="java.io.File"%> <%@page import="java.io.FileInputStream"%> <%@page import="java.io.InputStream"%> <%@page import="org.jbpm.api.RepositoryService"%> <%@page import="org.jbpm.api.Configuration"%> <%@page import="org.jbpm.api.ProcessEngine"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>上传</title> <script type="text/javascript"> function readFile(obj) { document.getElementById("file").value = obj.value; } </script> </head> <body> <% request.setCharacterEncoding("UTF-8"); String deployFile = request.getParameter("processDef"); if (deployFile != null && deployFile != "") { //必须使用的,流程引擎 ProcessEngine processEngine = Configuration.getProcessEngine(); RepositoryService repositoryService =processEngine.getRepositoryService(); try { String file = deployFile; //将ZIP文件封转到IO流里 InputStream is = new FileInputStream(new File(file)); ZipInputStream zis = new ZipInputStream(is); //将ZIP流程文件发布到pvm(流程虚拟机中,他会把ZIP包中的xml文件和png图片存储到数据库中) repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy(); zis.close(); is.close(); out.println("发布流程成功<br />"); out.println("<a href='task-write.jsp'>返回</a><br />"); } catch (Exception e) { e.printStackTrace(); out.println("发布流程失败"); } } %> <font color="red">可直接发布zip文件</font><br /> <form name="form1" method="post" action="deploy.jsp"> &nbsp;&nbsp;&nbsp;&nbsp; <label>发布流程文件<input type="file" id="file1" name="processDef" onchange="readFile(this)"/></label>&nbsp;&nbsp;<br/> <label><input type="submit" name="Submit" value="提交"></label><br/> </form> </body> </html> 要上传的流程文件 xml代码 <?xml version="1.0" encoding="UTF-8"?> <process name="leave" xmlns="http://jbpm.org/4.4/jpdl"> <start g="276,97,147,99" name="start1"> <transition to="申请"/> </start> <decision expr="#{day > 3 ? '老板审批' : '结束'}" g="282,376,79,78" name="exclusive1"> <transition g="-30,-13" name="结束" to="end1"/> <transition g="-2,-20" name="老板审批" to="老板审批"/> </decision> <end g="286,466,85,82" name="end1"/> <task assignee="#{owner}" g="256,174,98,55" name="申请"> <transition to="经理审批"/> </task> <task candidate-groups="manager" g="257,270,99,59" name="经理审批"> <transition g="-33,-11" name="批准" to="exclusive1"/> <transition g="3,-8" name="驳回" to="申请"/> </task> <task candidate-groups="boss" g="364,422,80,47" name="老板审批"> <transition to="end1"/> </task> </process> 上传完失败后,出现下面错误 二月 24, 2016 11:48:26 上午 org.jbpm.internal.log.Jdk14Log debug 详细: ----- beginning hibernate tx 13104183 -------------------------------------------------------- 二月 24, 2016 11:48:26 上午 org.hibernate.jdbc.util.SQLStatementLogger logStatement 详细: select propertyim0_.KEY_ as KEY1_2_, propertyim0_.VERSION_ as VERSION2_2_, propertyim0_.VALUE_ as VALUE3_2_ from JBPM4_PROPERTY propertyim0_ limit ? 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeGet 非常详细: returning 'next.dbid' as column: KEY1_2_ 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeGet 非常详细: returning '0' as column: VERSION2_2_ 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeGet 非常详细: returning '1' as column: VALUE3_2_ 二月 24, 2016 11:48:26 上午 org.hibernate.jdbc.util.SQLStatementLogger logStatement 详细: select propertyim0_.KEY_ as KEY1_2_0_, propertyim0_.VERSION_ as VERSION2_2_0_, propertyim0_.VALUE_ as VALUE3_2_0_ from JBPM4_PROPERTY propertyim0_ where propertyim0_.KEY_=? 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeSet 非常详细: binding 'db.version' to parameter: 1 二月 24, 2016 11:48:26 上午 org.jbpm.internal.log.Jdk14Log info 信息: jBPM version info: library[4.4-SNAPSHOT], schema[null] 二月 24, 2016 11:48:26 上午 org.jbpm.internal.log.Jdk14Log debug 详细: ----- committing hibernate tx 3988171 ------------------------------------------------------- java.io.FileNotFoundException: leave.zip (系统找不到指定的文件。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at org.apache.jsp.deploy_jsp._jspService(deploy_jsp.java:105) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) 求大神帮忙看看。。。
spring security oauth2 的一个问题 求大神指点
在oauth2根据授权码获取accsess token时,通关Debug发现在TokenEndpoint类下的getAccessToken方法内会根据principal去数据库获取client_id,但principal内存储的是当前用户的信息,然后就会报错:Given client ID does not match authenticated client 求大神解答怎么破. security.xml文件如下: ``` <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oauth2="http://www.springframework.org/schema/security/oauth2" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/security/oauth2 http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd"> <!-- 指定不需要权限过滤的路径 --> <http pattern="/login.jsp" security="none" /> <http pattern="/aouth/token" create-session="stateless" authentication-manager-ref="oauth2AuthenticationManager" entry-point-ref="oauth2AuthenticationEntryPoint"> <!-- 设置拦截地址和规则 --> <intercept-url pattern="/aouth/token" access="IS_AUTHENTICATED_FULLY" /> <!-- 非匿名 --> <anonymous enabled="false" /> <http-basic entry-point-ref="oauth2AuthenticationEntryPoint" /> <!-- 设置过滤链 --> <custom-filter ref="clientCredentialsTokenEndpointFilter" before="BASIC_AUTH_FILTER" /> <!-- 拒绝访问处理 --> <access-denied-handler ref="oauthAccessDeniedHandler" /> </http> <!--一个自定义的filter,必须包含authenticationManager,accessDecisionManager,securityMetadataSource三个属性, 我们的所有控制将在这三个类中实现 --> <beans:bean id="myFilter" class="com.yichi.mvcm.filter.MyFilterSecurityInterceptor"> <beans:property name="authenticationManager" ref="authenticationManager" /> <beans:property name="accessDecisionManager" ref="myAccessDecisionManagerBean" /> <beans:property name="securityMetadataSource" ref="myInvocationSecurityMetadataSource" /> </beans:bean> <!-- 认证客户端的manager --> <authentication-manager id="oauth2AuthenticationManager"> <authentication-provider user-service-ref="oauth2ClientDetailsUserService" /> </authentication-manager> <!-- spring security提供的用户登录验证 ,alias的值对应上面的ref="authenticationManager" --> <authentication-manager alias="authenticationManager"> <!--userDetailServiceImpl 获取登录的用户、用户权限 --> <authentication-provider user-service-ref="myUserDetailService" /> <!-- 缓存 --> <!-- <authentication-provider user-service-ref="cachingUserDetailsService" /> --> </authentication-manager> <!-- 缓存 --> <!-- <beans:bean id="cachingUserDetailsService" class="org.springframework.security.config.authentication.CachingUserDetailsService"> <beans:constructor-arg ref="myUserDetailService" /> 缓存UserDetails的UserCache <beans:property name="userCache" ref="userCache"/> </beans:bean> <beans:bean id="userCache" class="org.springframework.security.core.userdetails.cache.EhCacheBasedUserCache"> 用于真正缓存的Ehcache对象 <beans:property name="cache" ref="ehcache4UserDetails"></beans:property> </beans:bean> <beans:bean id="ehcache4UserDetails" class="org.springframework.cache.ehcache.EhCacheFactoryBean" /> --> <!--在这个类中,你就可以从数据库中读入用户的密码,角色信息,是否锁定,账号是否过期等 --> <beans:bean id="myUserDetailService" class="com.yichi.mvcm.filter.MyUserDetailService"> <!-- 配置成员变量 --> <beans:property name="sysUserService" ref="sysUserService" /> </beans:bean> <!--访问决策器,决定某个用户具有的角色,是否有足够的权限去访问某个资源 --> <beans:bean id="myAccessDecisionManagerBean" class="com.yichi.mvcm.filter.MyAccessDecisionManager"> </beans:bean> <beans:bean id="sysResService" class="com.yichi.mvcm.service.sys.SysResService"></beans:bean> <!--资源源数据定义,将所有的资源和权限对应关系建立起来,即定义某一资源可以被哪些角色访问 --> <beans:bean id="myInvocationSecurityMetadataSource" class="com.yichi.mvcm.filter.MyInvocationSecurityMetadataSource"> <!-- 配置成员变量 --> <beans:constructor-arg> <beans:ref bean="sysResService" /> </beans:constructor-arg> </beans:bean> <!-- 配置client客户端信息 --> <authentication-manager id="clientAuthenticationManager"> <authentication-provider user-service-ref="oauth2ClientDetailsUserService" /> </authentication-manager> <beans:bean id="oauth2ClientDetailsUserService" class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService"> <beans:constructor-arg ref="clientDetailsService" /> </beans:bean> <!-- 数据库读取客户端信息 --> <beans:bean id="clientDetailsService" class="com.yichi.mvcm.filter.CustomJdbcClientDetailsService"> <beans:constructor-arg index="0" ref="dataSource" /> </beans:bean> <!-- 资源filter配置 --> <oauth2:resource-server id="picResourceServer" resource-id="pic-resource" token-services-ref="tokenServices" /> <!-- 配token service用于生成访问令牌token --> <beans:bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.DefaultTokenServices"> <beans:property name="tokenStore" ref="tokenStore" /> <!-- 是否生成更新令牌 默认为false --> <beans:property name="supportRefreshToken" value="true" /> <beans:property name="clientDetailsService" ref="clientDetailsService" /> </beans:bean> <!-- token仓库 可以选择存储在内存或者数据库 --> <!-- <beans:bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.store.InMemoryTokenStore"> </beans:bean> --> <beans:bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.store.JdbcTokenStore"> <beans:constructor-arg index="0" ref="dataSource" /> </beans:bean> <!-- 资源 --> <http pattern="/mvcm/**" create-session="never" entry-point-ref="oauth2AuthenticationEntryPoint" access-decision-manager-ref="oauth2AccessDecisionManager"> <anonymous enabled="false" /> <intercept-url pattern="/mvcm/**" access="ROLE_index,SCOPE_READ" /> <custom-filter ref="picResourceServer" before="PRE_AUTH_FILTER" /> <access-denied-handler ref="oauthAccessDeniedHandler" /> </http> <beans:bean id="oauth2AuthenticationEntryPoint" class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint" /> <beans:bean id="oauthAccessDeniedHandler" class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler" /> <beans:bean id="oauth2AccessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased"> <beans:constructor-arg> <beans:list> <beans:bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter" /> <beans:bean class="org.springframework.security.access.vote.RoleVoter" /> <beans:bean class="org.springframework.security.access.vote.AuthenticatedVoter" /> </beans:list> </beans:constructor-arg> </beans:bean> <!-- user-approval-page:用户第三方登录认证以后的授权确认页面 error-page : 客户端申请授权的数据与服务端的不相同时跳转的页面 --> <oauth2:authorization-server client-details-service-ref="clientDetailsService" token-services-ref="tokenServices" user-approval-handler-ref="oauthUserApprovalHandler" user-approval-page="oauth_approval" error-page="oauth_error"> <oauth2:authorization-code authorization-code-services-ref="authorizationCodeServices" /> <oauth2:implicit /> <oauth2:refresh-token /> <oauth2:client-credentials /> <oauth2:password /> </oauth2:authorization-server> <!-- 授权码存储到数据库 --> <beans:bean id="authorizationCodeServices" class="org.springframework.security.oauth2.provider.code.JdbcAuthorizationCodeServices"> <beans:constructor-arg index="0" ref="dataSource" /> </beans:bean> <beans:bean id="oauthUserApprovalHandler" class="org.springframework.security.oauth2.provider.approval.DefaultUserApprovalHandler" /> <!-- <beans:bean id="clientCredentialsTokenEndpointFilter" class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter"> <beans:property name="authenticationManager" ref="clientAuthenticationManager" /> </beans:bean> --> <beans:bean id="clientCredentialsTokenEndpointFilter" class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter"> <beans:property name="authenticationManager" ref="clientAuthenticationManager" /> </beans:bean> <http auto-config="true" use-expressions="true"> <!-- 没有权限时跳转的页面 --> <access-denied-handler error-page="/accessDenied.jsp" /> <!-- 使用自定义的登录页面 login_page:指定登录页面 authentication-failure-url:登录失败跳转到/login.jsp login-processing-url进行认证拦截的请求路径 username-parameter和 password-parameter指定属性name字段 default-target-url认证成功默认跳转页面 --> <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=1" login-processing-url="/springSecurity" username-parameter="account" password-parameter="password" default-target-url="/index.jsp" /> <intercept-url pattern="/oauth/**" access="hasRole('ROLE_userOrg')" /> <!-- 设置单用户登录 --> <session-management> <!-- max-sessions表示最多允许多少次重复登录。如果没有配置error-if-maximum-exceeded, 那么用户账号的第二次登录会使第一次登录失效,而配置了的话,那么第二次登录会被阻止。 通常的做法是阻止第二次登录。 --> <concurrency-control max-sessions="1" error-if-maximum-exceeded="false" /> </session-management> <custom-filter ref="myFilter" before="FILTER_SECURITY_INTERCEPTOR" /> <!-- 检测失效的sessionId,session超时时,定位到另外一个URL --> <session-management invalid-session-url="/login.jsp" /> <logout invalidate-session="true" logout-success-url="/" logout-url="/logout" /> </http> </beans:beans> ```
谢谢 人事资源管理系统的问题
在servlet里取得数据库数据后怎么传送到jsp页面上而且jsp页面上怎么得到我在 servelt里将数据库更改之后的新数据
sqlserver2005+jsp 组成一个查询系统
sql表中有很多很多数据,想要查询并用表格的形式来显示出结果 已经连接上了数据库,可以执行查询语句,就是不知道该用什么方式把整个语句查询语句结果传递到显示结果的页面并且以表格的形式展现出来 ``` String all="select sum(iNumb) as iNumbHj,sum (rMoney) as rMoneyHj from [Data_ShopDailyBill_View] group by sShopCode"; Statement stmt1 = conn.createStatement(); ResultSet c = stmt1.executeQuery(all); ``` 就像上面的语句 怎么把执行查询语句得出来的这样一个数据 传到另一个显示界面中 并且用表格展现出来 我之前想用session一条一条传 发现根本不可能 数据很多条 求大神解答!!!急 ``` 看到网上用这样的方式 求大神看看这样的方式里面<%=rs.getString(3)%> 这个(3)是不是就是sql的列名? ResultSet rs=sm.executeQuery("select * from ustudent where sname='"+u+"'"); //显示记录 %> <table border="1"> <%while(rs.next()) {%> <tr><td>学号</td><td>姓名</td><td>性别</td><td>出生日期</td><td>年级</td><td>联系电话</td></tr> <tr><td><%=rs.getString(1)%> </td> <td><%=rs.getString(2) %></td> <td><%=rs.getString(3)%></td> <td><%=rs.getDate(4)%></td> <td><%=rs.getString(5)%></td> <td><%=rs.getString(6)%></td> </tr> </table> <%} %> </body> </html> ```
JSP,mysql,tomcat,罕见中文乱码问题from textarea?
最近在上手学javaweb,根据书里的练习题要做一个雇员系统,其中有一项是用textarea输入雇员的简介,大概就是一个页面输入信息,然后通过submit传值到另一个页面用javabean 接收,接收方式是setProperties的自动设置,然后在数据库里更新信息。 然后最开始出现了类似Incorrect string value: '\xE6\xB1\x9F\xE5\xAE\x81...' for column ‘note' 的错误信息,所以我就尝试单独设置note,用iso8859-1解码再编码再设置,解码后就不再报错了,但是会出现乱码,而且不管我用任何编码方式都是乱码,并且其他text都没有乱码唯独textarea有。我尝试过GBK,UTF-8,重新用iso8859-1,甚至latin1都试过了还是乱码,我就佛了。 下面 是一些或许会有用的信息:数据库连接的url里相关信息是useUnicode=true&characterEncoding=GBK;request.setCharacterEncoding("GBK")或者UTF-8都试过,set和不set都试过,form是get和post都试过,JSP文件最上面那几个charset=UTF-8和=GBK都试过,数据库里character_set_client=gbk, character_set_connection=gbk, character_set_databse=latin1, character_set_filesystem=binary, character_set_results=gbk, character_set_server =latin1, character_set_system=utf8;然后还试过在textarea里加入属性style="word-break:break-all;word-wrap: break-word;",不过貌似是为了解决换行问题的,反正也是没用。噢,最后提一下,这个textarea的乱码不是一堆看不懂的字符,就是纯粹的???,不知道这个信息有没有用,希望有大神来解答一下小弟的问题,不胜感激。
c3p0连接mysql,两web配置驱动一样,一个正常连接,另一个就报错,望大手解答一下个
如题目所说,2个web项目,配置文件完全一致,除了数据库名称更改了一下,但就是一个可以正常连接并读取,另一个不可以.![图片说明](https://img-ask.csdn.net/upload/201901/05/1546694612_788442.jpg),![图片说明](https://img-ask.csdn.net/upload/201901/05/1546694646_180453.jpg) 这两个是数据库的截图,都在本地下,一个web15,一个web17. 接下来是两个数据库的具体配置及jar版本![图片说明](https://img-ask.csdn.net/upload/201901/05/1546694752_134502.jpg)15![图片说明](https://img-ask.csdn.net/upload/201901/05/1546694756_64169.jpg)17, 15可以正常读取并显示页面,这里我为了省事直接输出一行了![图片说明](https://img-ask.csdn.net/upload/201901/05/1546694917_605779.jpg),控制台也正常,![图片说明](https://img-ask.csdn.net/upload/201901/05/1546694967_209297.jpg). 但是到了17就直接报错了,是根本就连接不了数据库,直接出现错误,我是真的没招了,请大神解答一下,本来找的资料学习的结果出了这种情况真的难受.17控制台错误![图片说明](https://img-ask.csdn.net/upload/201901/05/1546695129_400901.jpg),17页面显示![图片说明](https://img-ask.csdn.net/upload/201901/05/1546695154_301226.jpg),17具体代码实现,Servlet![图片说明](https://img-ask.csdn.net/upload/201901/05/1546695229_352965.jpg),Jsp![图片说明](https://img-ask.csdn.net/upload/201901/05/1546695236_696564.jpg),15代码我就不贴了,基本一致,就是把javaBean改了改,然后把BeanListHandler里面的也改了改,总体思路是一致的,但是就是一个可以输出一个无法输出.顺带说下,我上网查了很多,都没用,权限也有,就是报错.
SpringBoot集成shiro-redis遇到的问题(已解决)
在通过***(SysUser) SecurityUtils.getSubject().getPrincipal()*** 获取当前登录对象时,**SecurityUtils.getSubject().getPrincipal()**是正确的对象。 当强转时报错com.spring.model.system.SysUser cannot be cast to com.spring.model.system.SysUser。 求解本人猜测是redis对象序列化反序列化导致,因为shiro没有集成redis时是正确的,但是经过测试,不走shiro单独存储读取对象是没有问题的,这块不是太懂,求大神解答 下面是相关的配置代码 redis配置 ``` @Configuration @EnableCaching @EnableRedisHttpSession public class RedisConfig extends CachingConfigurerSupport { @Bean public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) { RedisCacheManager manager = new RedisCacheManager(redisTemplate); manager.setDefaultExpiration(3600);//设置默认过期时间 return manager; } @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); } }; } } ``` ``` shiro配置 @Configuration public class ShiroConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private int timeout; @Value("${spring.redis.password}") private String password; @Bean public ShiroDialect shiroDialect() { return new ShiroDialect(); } @Bean public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setSecurityManager(securityManager); //拦截器. Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>(); // 配置不会被拦截的链接 顺序判断 filterChainDefinitionMap.put("/doLogin", "anon"); filterChainDefinitionMap.put("/css/**", "anon"); filterChainDefinitionMap.put("/images/**", "anon"); filterChainDefinitionMap.put("/js/**", "anon"); filterChainDefinitionMap.put("/libs/**", "anon"); // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 shiroFilterFactoryBean.setLoginUrl("/login"); //未授权界面; shiroFilterFactoryBean.setUnauthorizedUrl("/403"); // 配置需要验证登录后访问的链接 filterChainDefinitionMap.put("/**", "authc"); // 从数据库获取 // List<AdminMenu> list = systemService.selectAllMenu(); // // for (AdminMenu menu : list) { // filterChainDefinitionMap.put(menu.getMenuUrl(), "authc"); // } shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; } /** * 凭证匹配器 * (由于我们的密码校验交给Shiro的SimpleAuthenticationInfo进行处理了) * * @return */ @Bean public HashedCredentialsMatcher hashedCredentialsMatcher() { HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); hashedCredentialsMatcher.setHashAlgorithmName("md5");//散列算法:这里使用MD5算法; hashedCredentialsMatcher.setHashIterations(1);//散列的次数 return hashedCredentialsMatcher; } @Bean public SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRealm(myShiroRealm()); // 自定义缓存实现 使用redis securityManager.setCacheManager(cacheManager()); // 自定义session管理 使用redis securityManager.setSessionManager(sessionManager()); //注入记住我管理器; securityManager.setRememberMeManager(rememberMeManager()); return securityManager; } /** * 身份认证realm; (自定义,账号密码校验;权限等) * * @return */ @Bean public MyShiroRealm myShiroRealm() { MyShiroRealm myShiroRealm = new MyShiroRealm(); myShiroRealm.setCredentialsMatcher(hashedCredentialsMatcher()); return myShiroRealm; } /** * 配置shiro redisManager * <p> * 使用的是shiro-redis开源插件 * * @return */ public RedisManager redisManager() { RedisManager redisManager = new RedisManager(); redisManager.setHost(host); redisManager.setPort(port); redisManager.setExpire(1800);// 配置缓存过期时间 redisManager.setTimeout(timeout); redisManager.setPassword(password); return redisManager; } /** * cacheManager 缓存 redis实现 * <p> * 使用的是shiro-redis开源插件 * * @return */ @Bean public RedisCacheManager cacheManager() { RedisCacheManager redisCacheManager = new RedisCacheManager(); redisCacheManager.setRedisManager(redisManager()); return redisCacheManager; } /** * RedisSessionDAO shiro sessionDao层的实现 通过redis * <p> * 使用的是shiro-redis开源插件 */ @Bean public RedisSessionDAO redisSessionDAO() { RedisSessionDAO redisSessionDAO = new RedisSessionDAO(); redisSessionDAO.setRedisManager(redisManager()); return redisSessionDAO; } /** * Session Manager * <p> * 使用的是shiro-redis开源插件 */ @Bean public DefaultWebSessionManager sessionManager() { DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); sessionManager.setSessionDAO(redisSessionDAO()); return sessionManager; } /** * cookie对象; * * @return */ public SimpleCookie rememberMeCookie() { //这个参数是cookie的名称,对应前端的checkbox的name = rememberMe SimpleCookie simpleCookie = new SimpleCookie("rememberMe"); //<!-- 记住我cookie生效时间7天 ,单位秒;--> simpleCookie.setMaxAge(604800); return simpleCookie; } /** * cookie管理对象;记住我功能 * * @return */ @Bean public CookieRememberMeManager rememberMeManager() { CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager(); cookieRememberMeManager.setCookie(rememberMeCookie()); //rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位) cookieRememberMeManager.setCipherKey(Base64.decode("3AvVhmFLUs0KTA3Kprsdag==")); return cookieRememberMeManager; } /** * 开启shiro aop注解支持. * 使用代理方式;所以需要开启代码支持; * * @param securityManager * @return */ @Bean public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) { AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); return authorizationAttributeSourceAdvisor; } } ``` # 去除spring-boot-devtools热部署jar包即可,具体原因不详
【辨别】真心求辨别,是客户端问题,还是服务端问题?
<p><span style="font-size: small;">以下的问题,久久不能忘怀。<br>已经思考几天了。<br>我来描述一下问题:</span><br><br>我的项目是采用 <br><span style="font-size: medium;">Language:</span><span style="color: #ff0000; font-size: medium;">Java</span><span style="font-size: medium;"><br>Server:</span><span style="color: red; font-size: medium;">Tomcat 6</span></p> <p> </p> <p>这是一个关于  <span style="color: #3366ff; font-size: large;">客户端请求服务器</span>  的问题</p> <p>描述:由于后台查询数据较慢,查询时间大概在 60s 之内。客户端访问 Jsp 页面,然后 服务器 在数据库 进行查询,查询之后,返回一个 Json 字符串。</p> <p> </p> <p>我做了一个模拟测试,在测试中,暂停该访问线程,<span style="color: #ff6600; font-size: x-large;">我暂停 30s(内)</span></p> <p> </p> <p><span style="color: #008080; font-size: medium;">requestInterface2.jsp 代码:</span> </p> <pre name="code" class="java">Thread.sleep(29000); String result = "{\"status\":\"0\",\"msg\":\" 查询成功!\",\"cname\":\"张三\"}"; out.print(result);</pre> <p> </p> <p><span style="color: #800000; font-size: large;">返回:</span></p> <p>org.apache.catalina.connector.RequestFacade@9bc36d<br>[INFO] [2012-05-29 20:42:36] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端请求的URI:/jiaofei/interface/requestInterface2.jsp</p> <p>[INFO] [2012-05-29 20:42:36] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端请求的服务器的IP地址:192.168.1.192<br>[INFO] [2012-05-29 20:42:36] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端的IP地址:192.168.1.101<br>[INFO] [2012-05-29 20:42:36] [org.apache.jsp.interface_.requestInterface2_jsp] # {"status":"0","msg":" 查询成功!","cname":"张三"}</p> <p> </p> <p> </p> <p> </p> <p>暂停该访问线程,<span style="color: #ff6600; font-size: x-large;">我暂停 30s(之后)</span></p> <p> </p> <p> </p> <pre name="code" class="java">Thread.sleep(31000); String result = "{\"status\":\"0\",\"msg\":\" 查询成功!\",\"cname\":\"张三\"}"; out.print(result);</pre> <p> </p> <p> </p> <p>org.apache.catalina.connector.RequestFacade@15c4ee6<br>org.apache.catalina.connector.RequestFacade@612ef6<br>[INFO] [2012-05-29 20:40:21] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端请求的URI:/jiaofei/interface/requestInterface2.jsp<br>[INFO] [2012-05-29 20:40:21] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端请求的服务器的IP地址:192.168.1.192<br>[INFO] [2012-05-29 20:40:21] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端的IP地址:192.168.1.101<br>[INFO] [2012-05-29 20:40:21] [org.apache.jsp.interface_.requestInterface2_jsp] # {"status":"0","msg":"查询成功!","cname":"张三"}<br><br>[INFO] [2012-05-29 20:40:51] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端请求的URI:/jiaofei/interface/requestInterface2.jsp<br>[INFO] [2012-05-29 20:40:51] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端请求的服务器的IP地址:192.168.1.192<br>[INFO] [2012-05-29 20:40:51] [org.apache.jsp.interface_.requestInterface2_jsp] # 获得客户端的IP地址:192.168.1.101<br>[INFO] [2012-05-29 20:40:51] [org.apache.jsp.interface_.requestInterface2_jsp] # {"status":"0","msg":"查询成功!","cname":"张三"}</p> <p> </p> <p><span style="color: #808000; font-size: xx-large;">亮点来了</span><span style="color: #808000; font-size: xx-large;">,</span><span style="color: #808000; font-size: xx-large;">注意,输出了两次 reqeust 内存地址,表示请求了两次 request</span><span style="color: #808000; font-size: xx-large;">,输出了两次请求的结果.</span></p> <p> </p> <p> </p> <p><span style="font-size: small;">我碰到的问题:</span></p> <p><span style="font-size: small;">1.为什么会客户端会发起 两次请求?</span></p> <p><span style="font-size: small;">   |-- 客户端采用 jqeury ajax 请求</span></p> <p><span style="color: #008080; font-size: small;"><span style="background-color: #ffffff;">此方法只调用了1次,没有调用第二次。</span></span><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;">function loadJson(){<br></span></p> <p><span style="font-size: small;">  var varRequestURL = "interface/requestInterface2.jsp";</span></p> <p><span style="font-size: small;">  $.post(varRequestURL,function(data){</span></p> <p><span style="font-size: small;">      alert(data);<br></span></p> <p><span style="font-size: small;">  });<br></span></p> <p><span style="font-size: small;">}<br></span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;">2.为什么请求之后,服务器返回了结果,而客户端没有接收到返回值?<br></span></p> <p><span style="font-size: small;">后台请求了之后,jqeury ajax 里,一直没有返回值。调用 $.post 方法失败</span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;">于是使用 jqeury ajax 完整版:</span></p> <p><span style="font-size: small;">$.ajax({<br>   url: varRequestURL,<br>          type: 'GET',<br>      timeout: 120000,<br>       error: function (XMLHttpRequest, textStatus, errorThrown)  {<br>          alert('请求失败');<br>            alert(XMLHttpRequest);<br>            alert(textStatus);<br>            alert(errorThrown);<br>            },success: function(data){<br>            alert("回调了");<br>            alert(data);<br>         }<br>        });<br></span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="color: #ff0000; font-size: small;">超时之后,自动提示出 "请求失败"。</span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;">于是,判断 可能 jquery 有问题,于是不使用 jqeury 库,使用  javascript 的 ajax</span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;"><br>function createXmlHttp(){    <br>    if (window.ActiveXObject) {<br>            try {<br>                return new ActiveXObject("Msxml2.XMLHTTP");<br>            } catch (e) {<br>                try {<br>                    return new ActiveXObject("Microsoft.XMLHTTP");<br>                } catch (e) {}<br>            }<br>    }<br>    if (window.XMLHttpRequest) {<br>        return new XMLHttpRequest();<br>    }<br>    return null;<br>}<br><br>var varRequest ;<br><br>function ajaxSubmit(url){<br>    alert('ajaxSubmit');<br>    varRequest = createXmlHttp();<br>    varRequest.open('GET',url,true);<br>    varRequest.onreadystatechange=ajaxCallback;<br>    varRequest.send(null);<br>}<br></span></p> <p><span style="font-size: small;"><br>function ajaxCallback(){<br>   if(varRequest.readyState ==1){<br>       <br>    }else if(varRequest.readyState==4){<br>        if(varRequest.status=200){</span></p> <p><span style="font-size: small;">           try{</span></p> <p><span style="font-size: small;">            var data = varRequest.responseText;<br>            alert(data);</span></p> <p><span style="font-size: small;">           }catch(err){</span></p> <p><span style="font-size: small;">           alert(err);</span></p> <p><span style="font-size: small;">           }<br>        }<br>    }<br>}</span></p> <p><span style="font-size: small;"><br></span></p> <p><span style="font-size: small;">使用结果和使用 jqeury 代码 结果一样。</span></p> <p> </p> <p> </p> <p><span style="color: #ff0000; font-size: x-large;">实在找不出问题所在,求大神解答!!!</span></p> <p> </p> <p><span style="font-size: medium;">另,Tomcat(6) 服务器 在 &lt;Connector <span style="color: #ff0000;">connectionTimeout="120000" </span>&gt; 我也已经配置。</span></p> <p> </p> <p> </p>
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
全网阅读过20k的Java集合框架常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!)。 文末有我的公众号,公众号里有我最新整理的Java学习资料,免费分享。 这么好的文章,一定好先赞后看!!!建议养成这个好习惯!!爱你们!???? 剖析面试最常见问题之Java集合框架 当了...
17张图带你解析红黑树的原理!保证你能看懂!
二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意结点的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问