精华内容
下载资源
问答
  • 我在消息函数执行自己的DLL的函数。正确的话是系统会执行该函数的响应函数,可在MFC我的响应函数未被执行,这是为什么??
  • java中怎样实现矢量图

    2014-12-16 07:03:20
    java中怎样实现矢量图的缩放,百度地图的图片是什么格式的,其是怎样实现缩放的
  • javaweb中怎样实现登录功能

    千次阅读 2019-03-31 18:46:01
    javaweb中怎样实现登录功能 创建数据库 数据库的名称是“mydb”。然后在该数据库创建表,表名是”tb_user”。表的结构如下图所示: 新建动态工程 启动eclipse并创建一个动态web工程,工程名称是“mynews”。在...

    javaweb中怎样实现登录功能

    创建数据库

    数据库的名称是“mydb”。然后在该数据库中创建表,表名是”tb_user”。表的结构如下图所示:

    在这里入图片描述

    新建动态工程

    启动eclipse并创建一个动态web工程,工程名称是“mynews”。在Target runtime中配置Tomcat的安装目录。如下图所示:
    在这里插入图片描述

    实验步骤:

    1.拷贝登录页到“WebContent”目录中,并增加如下红色的代码。
    在这里插入图片描述
    代码:

    <div class="signin">
    	<div class="signin-head"><img src="images/test/head_120.png" alt="" class="img-circle"></div>
    	<form class="form-signin" role="form" method="post" action="${pageContext.request.contextPath}/UserLogin">
    		<input type="text"  name="name" class="form-control" placeholder="user" required autofocus />
     
    		<input type="password" name="password" class="form-control" placeholder="password" required />
    		<button class="btn btn-lg btn-danger btn-block" type="submit">登录</button>
    		<label class="checkbox">
    			<input type="checkbox" value="remember-me"> 记住我
    		</label>
    	</form>
    </div>
    

    2.在src中创建包“swu.xxj.control”,并在该包中创建一个名为"UserLogin"的servlet。
    3、在src中创建包”swu.xxj.dbutil”,并在该包中创建一个名为“DbConnect”的类。该类主要用来连接数据库。完整代码如下:

    package swu.xxj.dbutil;
    import java.sql.*;
    public class DbConnect {
    	public static Connection getConnection(){
    		Connection conn = null;
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			String url ="jdbc:mysql://localhost:3306/mydb?user=root&password=123456&useUnicode=true&characterEncoding=utf-8";
    			conn = DriverManager.getConnection(url);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return conn;
    	}
    	/**
    	 * 关闭数据库连接
    	 * @param conn Connection对象
    	 */
    	public static void closeConnection(Connection conn){
    		// 判断conn是否为空
    		if(conn != null){
    			try {
    				conn.close();	// 关闭数据库连接
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    

    4、在src中创建包“swu.xxj.service”,并在该包中创建一个名为“UserService”的类。其代码如下:

    在这里插入图片描述
    5、修改“swu.xxj.control”包中的"UserLogin"的代码,在doPost方法里面添加如下代码:

    rotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.setCharacterEncoding("utf-8");
    		String name=request.getParameter("name");
    		String password=request.getParameter("password");
    		boolean flag=UserService.checkUserExist(name, password);
    		if(flag){
    			HttpSession session=request.getSession();
    			session.setAttribute("name", name);
    			session.setAttribute("password", password);
    			response.sendRedirect("index.jps");
    		}
    		else{
    			response.sendRedirect("mylogin/login.jsp");
    		}
    	}
    

    6、在“WebContent”目录下创建index.jsp。输出用户登录的信息,代码如下:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    欢迎${name }登录
    </body>
    </html>
    

    程序框图

    程序框图

    数据库

    在这里插入图片描述

    实验结果

    在这里插入图片描述

    注意事项

    ·更改已有代码中数据库的密码为123456780
    在这里插入图片描述
    · 注意将文件资源夹中的驱动程序拷贝至webContent目录WIB-INF目录下的lib文件夹中
    在这里插入图片描述
    ·在WEB-INF文件夹下新建index.jsp,并将webContent目录mylogin目录下的index.html文件重命名为login.jsp,否则网页运行失败。

    【ps】项目资源包可以在我下载资源里找,大家一起学习哟~

    展开全文
  • C++虚函数是怎样实现

    千次阅读 2016-03-04 16:21:20
    C++虚函数是怎样实现

    C++中的多态就是依据虚函数实现的,那么下面借用一个例子来说一下虚函数是怎样实现多态的,并解释一下虚函数到底是怎样实现的。

    class ClassA
    {
    public:
    	void fun1();
    	void fun2();
    	virtual void fun3();
    };
    
    void ClassA::fun1()
    {
    	cout<<"ClassA.fun1"<<endl;
    };
    
    void ClassA::fun2()
    {
    	cout<< "ClassA.fun2"<<endl;
    };
    
    void ClassA::fun3()
    {
    	cout<< "ClassA.fun3"<<endl;
    };
    
    
    class ClassB : public ClassA
    {
    public:
    	void fun1();
    	void fun2();
    	virtual void fun3();
    };
    
    void ClassB::fun3()
    {
    	cout<< "ClassB.fun3"<<endl;
    };
    
    class ClassC : public ClassB
    {
    public:
    	void fun1();
    	void fun2();
    	virtual void fun3();
    };
    
    void ClassC::fun3()
    {
    	cout<< "ClassC.fun3"<<endl;
    };
    
    void main()
    {
    	ClassA *a[3];
    	ClassA a1;
    	ClassB b1;
    	ClassC c1;
    
    
    	a1.fun3();
    	b1.fun3();
    	c1.fun3();
    
    	a[0] = &a1;
    	a[1] = &b1;
    	a[2] = &c1;
    	cout << "virtual function array test" <<endl;
    	for(int i=0;i<3;i++)
    	{
    		a[i]->fun3();
    	}
    
    	cout << "((ClassA)&b1).fun3():";
    	((ClassA*)&b1)->fun3();
    	//object slicing
    	cout << "object slicing"<<endl;
    	cout <<"((ClassA)b1).fun3():"; 
    	((ClassA)b1).fun3();
    }

    这三个类之间的继承关系是:ClassC继承ClassB,ClassB继承ClaaA,fun3是虚函数,并且在ClassB和ClassC中被重写。

        下面先介绍一下什么是虚函数:在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};

    多态性的实现是通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数

    接下来说一下虚函数是怎样实现多态的以及虚函数的实现机制:实际上,编译器是通过一个虚函数表,在运行时间接的调用实际上绑定的函数来达到动态绑定的,这张表对我们来说是透明的,是编译器针对那些包含虚函数的代码自动加上去的。该表每一行的元素是一个指向代码中虚函数的指针,有了这个地址,我们可以调用实际代码中的虚函数了。编译器又通过增加一个指向该虚函数表的指针(vptr)将该表与我们的代码联系到一起。

    ClassA中vptr与虚函数表之间的关系图(盗的图)

    每一个ClassA的实例,都会有一个虚函数表vptr,当我们在代码中通过这个实例来调用虚拟函数时,都是通过vptr先找到虚拟函数表,接着

    虚函数表中再找出指向的某个真正的虚拟函数地址。虚拟函数表中的内容就是类中按顺序声明的虚拟函数组织起来的。在派生的时候,子类都会继承父类的虚拟函数表vptr,若子类改写了父类中的虚拟函数,则子类的vptr成员也会作修改,此时,子类的vptr成员指向的是子类所改写父类的 虚拟函数地址。多态也就体现在这里。 ClassB中vptr与虚函数表之间的关系图

    ClassC中的关系也同理。

    那么,一个指向ClassA的对象的实例,调用fun3就是ClassA::fun3(),一个指向ClassB的对象的实例,调用fun3就是ClassB::fun3(),一个指向ClassC的对象的实例,调用fun3就是ClassC::fun3(),这些调用通过都是通过虚函数表来进行的。

    上面的结果是:

    ClassA.fun3
    ClassB.fun3
    ClassC.fun3
    virtual function array test
    ClassA.fun3
    ClassB.fun3
    ClassC.fun3
    ((ClassA)&b1).fun3():ClassB.fun3
    object slicing
    ((ClassA)b1).fun3():ClassA.fun3
    请按任意键继续. . .


    
    
    展开全文
  • vue中怎样实现 路由拦截器(当用户没有登录的时候,跳转到登录页面,已经登录的时候,不能跳转到登录页,除非后台token失效) 在 我们需要实现这样 一个功能,登录拦截 其实就是 路由拦截,首先在定义路由的时候就...

    vue中怎样实现 路由拦截器(当用户没有登录的时候,跳转到登录页面,已经登录的时候,不能跳转到登录页,除非后台token失效)

    在 我们需要实现这样 一个功能,登录拦截

    其实就是 路由拦截,首先在定义路由的时候就需要多添加一个自定义字段requireAuth,用于判断该路由的访问是否需要登录。如果用户已经登录,则顺利进入路由, 否则就进入登录页面。在路由管理页面添加meta字段

    router/index.js文件,例如,在用户直接跳转/manage 路径下的时候,实现路由拦截

     {
              path:'/manage',
              name:'manage',
              component:manage,
              meta:{requireAuth:true}
            },

    我们需要在main.js 中加上

    router.beforeEach((to, from, next) => {
      console.log(to);
      console.log(from);
      if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
        if(localStorage.getItem('access_token')){ //判断本地是否存在access_token
          next();
        }else {

          next({
            path: 'login',
            query: {

              redirect: to.fullPath

            }
          })

        }
      }
      else {
        next();
      }
      /*如果本地 存在 token 则 不允许直接跳转到 登录页面*/
      if(to.fullPath == "/login"){
        if(localStorage.getItem('access_token')){
          next({
            path:from.fullPath
          });
        }else {
          next();
        }
      }
    });

    redirect: to.fullPath 用来记录哪里被拦截跳转到登录的,这样登陆完之后可以重新跳转回来这个页面

    参数说明:

         * to: Route: 即将要进入的目标 路由对象 
         * from: Route: 当前导航正要离开的路由 
         * next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。 

    转载于:https://www.cnblogs.com/haonanZhang/p/9371642.html

    展开全文
  • android Spinner 实现多选怎样实现?有人做过吗? 我知道得重写,但是,不知道具体重写哪个方法。选择的多个item能显示在Spinner的默认位置上。
  • 您好。我最近在做文本分类的有关内容,但是遇到了一些问题。我想向您请教一个技术问题。怎样将文件夹的文件循环分词,还是只能一个一个分词呢?谢谢!
  • 怎样实现ZBrush的智能对称

    千次阅读 2016-10-19 11:08:17
    ZBrush软件智能化和人性化的工作流程让用户在创作提高工作效率,体验创作乐趣,说起智能化不得不提的就是ZBrush给我们提供的智能对称功能,所谓的智能对称就是当您在编辑其中一半的物体模型时,执行相关操作另一半...

            ZBrush软件智能化和人性化的工作流程让用户在创作中提高工作效率,体验创作乐趣,说起智能化不得不提的就是ZBrush给我们提供的智能对称功能,所谓的智能对称就是当您在编辑其中一半的物体模型时,执行相关操作另一半模型会自动完成对称。这样伟大的创举让我们的工作达到事半功倍的效果,今天的ZBrush教程就来教大家如何实现这功能。

      智能对称

      Smart ReSym(智能对称):当物体以对称编辑的方式进行制作时,如果模型在某对称方向上未能对称,可以将物体正确的一半进行遮罩,应用此命令,对称的另一半将根据被遮罩部分网络自动完成对称,此命令是针对多边形网格物体的,而且如果两边对称相差太大,此命令不一定能完成理想的效果。对称的坐标轴可以在此命令的后面设置。

      下面我们就通过一个小实例来了解Smart ReSym(智能对称)的用法。

      在LightBox中选择DemoHead,在视图中拖拽出一个人头模型。

      按键盘上的X键,取消画笔的对称,在人头左半边脸进行雕刻,如下图(左)所示。

      确定模型处于正交视图,按住键盘上的Ctrl键,框选人头已经雕刻好的左半边脸,如下图(右)所示。

      提示:被遮罩的部分需要对称的部分。

      单击Tool>Deformation(工具>变形)命令,展开其菜单,单击Smart ReSym(智能对称)按钮,如下图(左)所示,等待一段时间后,人头的另一边就被对称复制出来了,如下图(右)所示。

      注意:在Smart ReSym(智能对称)按钮的右侧,有x/y/z3个轴向可供选择,我们需要在哪个轴向对称就选择哪个轴向。

      想要了解更多关于ZBrush图形绘制软件以及ZBrush精简版ZBrushCore的详细信息,大家可前往ZBrush中文网站进行了解。

    展开全文
  • html中怎样实现在输入框出现提示

    千次阅读 2017-10-23 22:45:03
    hello 请输入网址: 利用placeholder 结果
  • 在fragment中怎样实现AlertDialog

    千次阅读 2016-11-26 20:20:32
    通过getActivity()来得到Context对象即可创建dialog了。 AlertDialog.Builder builder = new Builder(getActivity()); builder.setTitle("请输入"); //设置对话框标题 builder.setIcon(android.R.drawable.btn_star...
  • java,函数参数是不支持引用传递的, 所以根本不能像c/c++那样直接传地址, 那如果我要写一个swap函数交换两个变量的值,该怎么办呢? 二、案例提出:有三个数abc,要求从小到大输出 思路:a放最小的,c...
  • 请问在unity,使用角色控制器后爬坡时角色会依然保持原来的样子。有木有办法让角色爬坡时可以倾斜?
  • MindMapper中怎样实现文字多行输入

    千次阅读 2015-11-23 13:49:15
    我们可以在MindMapper思维导图中实现多行文字输入,可以将主题框内较长的文本转换成多行文字输入,能够减少因文字较多而造成的臃肿效果,使得导图更加美观
  • 实现DataGridView数据显示的定制表头,我的作法是:DataGridView数据源设置为特定DataSource后,通过勾选相应的checkbox,来控制DataGridView相应column的visible属性,但是在写代码时,dgv始终不显示column...
  • ![图片说明](https://img-ask.csdn.net/upload/201608/10/1470813633_366769.png) ![图片说明](https://img-ask.csdn.net/upload/201608/10/1470813840_605248.png) 从单表数据变成每个数据独立
  • 比如有这样的c++代码: struct A { ... ... union { ... ... } } 用c#怎样实现
  • 我尝试用1个DrawingVisual对象,并在它的DrawingContext中实现叠加地绘制图片,但每次调用DrawingContext.Drawxxx()都会擦除原来的内容,以至于无法不断地叠加显示jpg图。请问,这种需求应该用WPF哪种绘图方式呢?
  • alertdialog 输入文本之后点击确认后 怎样实现显示progressdialog? 求大神指点!
  • 小白才接触directx,绘制了一个正方形想让其能够平滑的移动,但是尝试了D2D很多接口函数都没用,一直存在闪烁现象。求指教
  • 上面的搜索框遇到一个问题。我想将搜索图标放在搜索框,但长时间没有解决... 不用多说,我们直接进入了主题: 基本思想 事实上,输入框及其后面的图标被放置在div,然后输入框的边框被设置为0px,最后div的...
  • 我们如果使用C#编码,经常需要实现下载文件的功能,下面简单提供一个在winfrom窗体下实现的下载功能 注意:要在winform窗体下才可以 调用方法DownLoad就可以下载下需要的文件,具体下载判断可以在方法内添加 ...
  • 如SQL: ``` select assets_entity.* from assets_entity left join ( select inventory_recording.assets_entity_id from inventory_recording where inventory_recording.inventory_task_id = ?...
  • 在HTML的下拉框中怎样实现超连接?

    千次阅读 2018-05-11 16:15:00
    给你个例子自己改吧:<SELECT name="select" onchange="window.open(this.options[this.selectedIndex].value,target='_self')"><OPTION value='file1....网址1</OPTION><OPTION value='fi...
  • 大概的已经做出来了,但是在数据库商店的id为0,怎样把商店的id改成1,就完成了宠物商店购买宠物主人的宠物 #
  • 浅谈“函数调用”在VS中怎样实现: 首先我们应该了解main()函数也是被调用的: mainCRCStartup() 调用  __tmainCRCStartup()) 调用  main()函数 接下来我们用一个程序来简单实现一下: #define _CRT_...
  • android中怎样实现手指向上滑动顶部导航栏从透明变成不透明的
  • LTE语音业务时怎样实现

    千次阅读 2018-04-25 19:13:06
    VoLTE是GSMA定义的标准LTE语音解决方案,其核心业务控制网络为IMS(IP多媒体子系统)网络,配合LTE,EPC网络实现端到端的基于分组域的语音、视频通信业务。为了保证语音业务的连续性,运营商有两个选项,一是保证LTE...
  • VB.NET中怎样实现位运算

    千次阅读 2014-04-03 19:54:46
    实现,VB提供了很方便的库函数,这很类似于C++的bitset类型操作(需要包含文件)。BitVector32对象可以存储一组占用32个连续位的小整数,因此对位编码字段非常有用,尤其在和硬件设备传递数据时!(大家可以参考...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,519
精华内容 8,607
关键字:

怎样实现中