首页 > [转载]SSH框架搭建详细图文教程

[转载]SSH框架搭建详细图文教程

什么是SSH?



SSH对应 struts spring hibernate

struts 采用MVC模式,主要是作用于用户交互

spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合

hibernate 是对象持久化框架,其实就是实体类和数据库表建立关系,操作类就会触发相应的sql语句,可以不用写任何sql语句,完成数据库编程(引自百度知道)

SSH就是Struts + Spring + Hibernate 3个Java框架的集合,现在Java开发中常用的框架组合。用来开发后台,与前台和数据库进行数据交互。最初学这个是为了写JSP。

 

SSH框架搭建步骤很多,但是不难,因为MyEclipse已经帮我们做了大部分的工作,如果纯手动添加这个框架的话,那真是够复杂的了。不过涉及的知识挺多的,适合有一定基础的人。下面详细介绍一下SSH框架的搭建步骤并且解决了几个我在搭建过程中遇到的问题。



事先准备工作:



AS3学习笔记3-Flash程序员常用开发工具1.JDK



这个是一切的前提,相信大家都有。没有的话下面的步骤也不用看了,先安装JDK,配置环境变量吧。

JDK 7.0 下载:http://www.onlinedown.net/soft/61003.htm

配置Java环境变量教程:http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html



AS3学习笔记3-Flash程序员常用开发工具2.MyEclipse



我们主要用MyEclipse来搭建SSH, 所以这个必须有,我用MyEclipse 8.5搭建过SSH,没问题。没有的话建议下载高版本的,与时俱进嘛。汉化或者不汉化看个人习惯,我觉得中文用起来比较舒服。

Myeclipse 10 下载:http://www.pc6.com/softview/SoftView_57131.html

Myeclipse 汉化包及汉化教程:http://blog.csdn.net/cntanghai/article/details/6310200



AS3学习笔记3-Flash程序员常用开发工具3.MySQL



数据库,注意安装时设置的密码千万别忘了。

MySQL详细图文安装教程:http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html

MySQL 5.5.28 下载:http://down.chinaz.com/soft/29015.htm



AS3学习笔记3-Flash程序员常用开发工具4.Navicat for MySQL



MySQL视图化管理及开发工具,主要用他来操作MySQL。推荐安装,非必须。

Navicat for MySQL v10.1.7简体中文特别版下载:http://www.xiazaiba.com/html/2122.html



5.mysql-connector-java-5.0.8-bin.jar



Java连接MySQL数据库时需要用到的jar包。

jar下载:http://pan.baidu.com/share/link?shareid=444190&uk=4262258889



6.在MySQL中新建一个表,用来测试数据



我在这里准备做一个注册登录功能,所以在test里建了一个user表,表里的字段有id、username、password、nickname四个字段。nickname用来测试中文是否乱码。

SQL语句:



CREATE TABLE `user` (

  `id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'ID',

  `username` varchar(40) character set utf8 NOT NULL COMMENT '用户名',

  `password` varchar(40) collate utf8_unicode_ci NOT NULL COMMENT '密码',

  `nickname` varchar(40) character set utf8 NOT NULL COMMENT '昵称',

  PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户信息表';









SSH框架搭建步骤:



1.新建一个项目。打开MyEclipse,新建一个Web项目,起名就叫SSH吧,点击完成,若弹出提示点Yes即可。

[转载]SSH框架搭建详细图文教程

[转载]SSH框架搭建详细图文教程 



2.添加Struts框架。右键这个项目,选择MyEclipse->Add Struts Capabilities。 在弹出的菜单中把包的路径改一下, Base package for new classes选项中的路径com.yourcompany.struts改成com.ssh.struts, 点击完成。



[转载]SSH框架搭建详细图文教程



展开WebRoot中的WEB-INF文件夹,看到目录结构如下图,证明Struts框架添加完成。

[转载]SSH框架搭建详细图文教程



3.添加Spring框架。右键这个项目,选择MyEclipse->Add Spring Capabilities。

[转载]SSH框架搭建详细图文教程



在菜单中选择如下6个库,点击下一步。

[转载]SSH框架搭建详细图文教程



更改Folder路径,选择SSH项目WebRoot文件夹下的WEB-INF,完成。



[转载]SSH框架搭建详细图文教程



现在项目的目录结构如下,Spring框架添加完成。



[转载]SSH框架搭建详细图文教程



4.连接数据库。点击右上角的图标"打开透视图",选择MyEclipse Database Explorer。在窗口中右键->New 新建一个数据库连接。



[转载]SSH框架搭建详细图文教程



Driver template 选择 MySQL Connector/J

Driver name 起名叫test

Connection URL 更改为jdbc:mysql://自己的IP地址:端口号/数据库名称

User name 填写MySQL的用户名

Password 填写MySQL的密码

Driver JARs 点击Add JARs按钮,浏览到事先准备的mysql-connector-java-5.0.8-bin.jar

Save password 选上



[转载]SSH框架搭建详细图文教程



点击Test Driver,测试结果:数据库配置正确,点击完成。



[转载]SSH框架搭建详细图文教程



双击添加的test连接,展开目录,可以发现我们事先创建的user表。



[转载]SSH框架搭建详细图文教程







5.添加Hibernate框架。右键SSH项目,选择MyEclipse->Add Spring Capabilities。



[转载]SSH框架搭建详细图文教程 



点击下一步。

[转载]SSH框架搭建详细图文教程



配置中选择第二项"Spring configuration file"。把Spring与Hibernate整合到一起,点击下一步。



[转载]SSH框架搭建详细图文教程



在菜单中选第二项"Existing Spring configuration file",点击下一步。



[转载]SSH框架搭建详细图文教程



DB Driver选择在添加Spring框架时配置的test,点击下一步。



[转载]SSH框架搭建详细图文教程



取消Create SessionFactory class?这个选项,点击完成。



[转载]SSH框架搭建详细图文教程 



现在的目录结构如下,SSH框架大体搭建完成。

[转载]SSH框架搭建详细图文教程



6.测试功能。



先部署一下项目,访问首页看看效果。选择窗口上方图标"Deploy MyEclipse J2EE Project to Server"->点击add添加SSH项目->Server选择MyEclipse Tomcat。



[转载]SSH框架搭建详细图文教程



项目部署成功。



[转载]SSH框架搭建详细图文教程



点击窗口上方图标"Run MyEclipse Servers"启动Tomcat。



[转载]SSH框架搭建详细图文教程



在浏览器中访问SSH项目地址,别忘了加上Tomcat的默认端口,8080端口。

输入地址:http://localhost:8080/SSH,Tomcat会访问SSH项目WebRoot下的index.jsp。



[转载]SSH框架搭建详细图文教程



现在修改一下index.jsp中给的内容,在Body中添加"这是我的首页"。Ctrl+S保存。



[转载]SSH框架搭建详细图文教程



这里出现了一个问题,页面默认的编码为ISO-8859-1,不支持中文字符,无法保存。我们先把这个提示关掉。



选择窗口->首选项->MyEclipse->JSP->Files and Editors->JSP,把编码改为ISO 10646/Unicode(UTF-8)->应用->确定。



[转载]SSH框架搭建详细图文教程



编码问题是一个很常见的问题,为避免出现这类我提我们尽量将工作空间的所有编码格式统一,无论前台后台还是数据库,否则会引发许多问题,例如中文乱码。



选择窗口->首选项->常规->工作空间->文本文件编码选择其他->其他选项里选择UTF-8->应用->确定。



[转载]SSH框架搭建详细图文教程



这样设置后,我们的工作空间编码就比较统一了,再生成的JSP页面就是UTF-8编码格式了,能够很好的支持中文字符,不过之前生成的JSP页面编码格式要我们手动更改。

把index.jsp中<%@ page language="java" import="java.util.*" pageEncoding="XXX"%> 的pageEncoding改为UTF-8,再保存页面。这时再访问http://localhost:8080/SSH , 正确显示中文,这回没问题了。



[转载]SSH框架搭建详细图文教程



现在写个注册登录的功能来测试一下框架整合的结果。



切换到MyEclipse DataBase Explorer视图,通过Spring框架的逆向工程功能把user表逆向成Java实体类。右键user表选择"Hibernate Reverse Engineering"。

[转载]SSH框架搭建详细图文教程



Java src folder 选择SSH项目下的src文件夹。

Java package 填写com.ssh.user



勾选前三个选项:Create POJO、Java Data Obect和Java Data Access Object。POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作,这里会封装一些常用的操作,基本上可以满足我们的各种需要了,选择下一步。



[转载]SSH框架搭建详细图文教程



Id Generator 选择 native,点击完成。



[转载]SSH框架搭建详细图文教程





此时的目录结构如下,我们可以看到系统生成了3个类,一个配置文件。

User 继承自AbstractUser,是User表的实体类。

UserDAO 封装了一些对数据库的常用操作。

User.hbm.xml 是hibernate-mapping映射配置文件,配置了哪个实体类映射哪个表,配置了实体类的哪个属性映射表里的哪列。

如果这些东西不用hibernate生成,那么我们就要自己写,要浪费很多时间,hibernate的作用就体现出来了。



[转载]SSH框架搭建详细图文教程



现在来写测试页。打开WEB-INF文件夹下的struts-config.xml文件,切换到设计视图(design)。右键->New->Form Action and JSP。



[转载]SSH框架搭建详细图文教程



填写Form表单属性:

Use case: login

Name:loginForm

在下方Form Properties中添加两个属性

username: JSP input type text

password: JSP input type password



[转载]SSH框架搭建详细图文教程



切换到JSP选项,填写JSP属性:

勾选Create JSP form

路径修改为/jsp/login.jsp

点击完成。



[转载]SSH框架搭建详细图文教程



此时的目录结构如下,可以看到在WebRoot/jsp/下 生成了一个login.jsp页。



[转载]SSH框架搭建详细图文教程



我们查看一下现在的目录结构,并把struts-config.xml切换到Source视图,看看struts框架帮我们干了什么。



可以看到目录里多了3个文件:LoginFrom.java、LoginAction.java、login.jsp。这正是我们在设计视图里选择Form,Action and JSP所配置的文件。而struts-config.xml里也相应的添加了这3个文件的映射配置信息。如果这些不用struts生成的话,就需要我们自己写,会浪费很多时间,struts的作用体现出来了。



这里说一下页面请求的执行顺序:

1、login.jsp用户填写了登录信息并点击了登录按钮,发送了一个请求(loginFrom.do)。

2、struts会通过struts-config.xml找到相应的映射配置(Action name==loginFrom)。

3、把登录表单的属性映射到loginForm.java里(bean)。

4、把loginForm和mapping、request、response一起交给LoginAction处理。

5、LoginAction执行完后的通过mapping找到跳转页面forward(这个下面会提到)。

[转载]SSH框架搭建详细图文教程





现在添加两个页面:登录成功页和登录失败页,实现登录后的跳转。

在WebRoot/jsp/下新建两个JSP页。起名为loginSuccess.jsp和loginFail.jsp。



[转载]SSH框架搭建详细图文教程



向导信息如下:



[转载]SSH框架搭建详细图文教程



在loginSuccess.jsp页面body中添加"登录成功!
"。

在loginFail.jsp页面body中添加"登录失败
"。



[转载]SSH框架搭建详细图文教程



把登录页、登录成功页、登录失败页3个页面相关联。

切换到struts-config.xml的设计视图。右键login.jsp->New->Forward。



[转载]SSH框架搭建详细图文教程



loginSuccess:

选择Local Action Forward

浏览Action Path:/login

填写name:loginSuccess

浏览Path:/jsp/loginSuccess.jsp

完成

loginFail:

选择Local Action Forward

浏览Action Path:/login

填写name:loginFail

浏览Path:/jsp/loginFail.jsp

完成

[转载]SSH框架搭建详细图文教程



切换到Source视图,可以看到代码如下图:

Action里多了





两行代码,页面跳转添加完成。



[转载]SSH框架搭建详细图文教程 



现在来写具体的执行代码。打开LoginAction.java。可以看到自动生成的代码如下图:



[转载]SSH框架搭建详细图文教程



我们先不连数据库,先写一个测试的登录代码。



    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        //获取帐号密码

        String username = loginForm.getUsername();

        String password = loginForm.getPassword();

        //帐号密码匹配,跳转到登录成功页

        if("asd".equals(username) && "asd123".equals(password)){

            return mapping.findForward("loginSuccess");

        }

        //不匹配,跳转到登录失败页

        return mapping.findForward("loginFail");

    }



准备就绪,启动Tomcat,在浏览器中访问登录页:

http://localhost:8080/SSH/jsp/login.jsp



[转载]SSH框架搭建详细图文教程



看到这个界面,都是英文,很不爽,不仅仅因为丑。把它改成中文的,打开login.jsp,代码如下:



<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

 



    

        JSP for LoginForm form

    

    

        

            username :


            password :


            

        


    





改成:



<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

 



    

        用户登录

    

    

        

            帐号 :


            密码 :


            

        


    





刷新一下登录页面,看看效果:



[转载]SSH框架搭建详细图文教程



登录界面汉化成功!看起来舒服多了。点击登录。

这时候因为我们什么都没填,应该跳转到登录失败页面。



[转载]SSH框架搭建详细图文教程



后退,回到登录界面,填写

帐号:asd

密码:asd123

点击登录,帐号密码和后台设置的匹配,这时候应该跳转到登录成功界面。



[转载]SSH框架搭建详细图文教程



测试完成,下面我们连接一下数据库,从数据库里取出user数据进行匹配。

想操作数据库我们要先获取DAO(data access object),我们的UserDAO是hibernate生成的,关于UserDAO的配置信息写在了applicationContext.xml里。所以在用UserDAO之前要先获取applicationContext.xml。



百度上查找了一下相关代码,找到了一个获取applicationContext.xml的方法。Spring框架里的

ClassPathXmlApplicationContext 通过这个类可以获取到我们需要的DAO。名字和applicationContext非常像,看起来就是这个类了。



测试一下这个类是否好用:

把LoginAction打开,把代码改为:



    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        //获取帐号密码

        String username = loginForm.getUsername();

        String password = loginForm.getPassword();

       

        //获取用户信息

        ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("applicationContext.xml");

        System.out.println(beans);

       

        //帐号密码匹配,跳转到登录成功页

        if("asd".equals(username) && "asd123".equals(password)){

            return mapping.findForward("loginSuccess");

        }

        //不匹配,跳转到登录失败页

        return mapping.findForward("loginFail");

    }



重新启动Tomcat服务器,访问登录页http://localhost:8080/SSH/jsp/login.jsp,点击登录:

javax.servlet.ServletException: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist

出现了一个错误,意思为找不到applicationContext.xml。看来我们填写的路径有问题,这个配置文件应该是从我们项目classes的根目录开始查找的,先看一下我们的项目发布后classes的路径,右键SSH项目->属性->Java构建路径->源代码。



[转载]SSH框架搭建详细图文教程



可以看到我们项目发布后classes的根目录是SSH/WebRoot/WEB-INF/classes。 applicationContext.xml是这个位置的上一级,那么相对于这个路径的位置就是"../applicationContext.xml"。现在把LoginAction里的路径修改一下:



    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        //获取帐号密码

        String username = loginForm.getUsername();

        String password = loginForm.getPassword();

       

        //获取用户信息

        ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("../applicationContext.xml");

        System.out.println(beans);

       

        //帐号密码匹配,跳转到登录成功页

        if("asd".equals(username) && "asd123".equals(password)){

            return mapping.findForward("loginSuccess");

        }

        //不匹配,跳转到登录失败页

        return mapping.findForward("loginFail");

    }



重新启动Tomcat服务器,访问登录页http://localhost:8080/SSH/jsp/login.jsp,点击登录:

页面不再报错,正常跳转,控制台也输出了:

org.springframework.context.support.ClassPathXmlApplicationContext@14bb075: startup date [Mon Apr 22 14:26:58 CST 2013]; root of context hierarchy]



路径的问题解决了,正确的获取到了配置信息,这个配置信息我们以后要经常用,并且没必要每次用的时候都把它创建出来,浪费时间,写一个全局变量保存它吧。在src下新建一个包com.ssh.common,在包里新建一个类Global.java。输入代码如下:



package com.ssh.common;



import org.springframework.context.support.ClassPathXmlApplicationContext;



public class Global {

   

    public static ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("../applicationContext.xml");

   

   

    public static Object getDAO(String daoName){

        return beans.getBean(daoName);

    }

}



现在来获取数据库里的数据,在user表里新增一个用户信息

username=asd

password=asd123

nickname=中文不是乱码



[转载]SSH框架搭建详细图文教程 



把LoginAction里的代码改为:



    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        //获取帐号密码

        String username = loginForm.getUsername();

        String password = loginForm.getPassword();

       

        //检查该用户是否存在

        User instance = new User();

        instance.setUsername(username);

        instance.setPassword(password);

        UserDAO userDAO = (UserDAO)Global.getDAO("UserDAO");

        List list = userDAO.findByExample(instance);

       

        //如果用户存在,则登录成功。

        if(list.size() > 0){

            User user = (User)list.get(0);

            String nickname = user.getNickname();

            //写入提示信息

            request.setAttribute("message", "您的昵称为:" + nickname);

            return mapping.findForward("loginSuccess");

        }

       

        //不匹配,跳转到登录失败页

        return mapping.findForward("loginFail");

    }



在loginSuccess.jsp的Body中添加一行代码:

<%=request.getAttribute("message")%>




重新启动Tomcat服务器,访问登录页http://localhost:8080/SSH/jsp/login.jsp

填写帐号:asd 密码:asd123 点击登录:



[转载]SSH框架搭建详细图文教程



登录功能完成,这是个SSH框架的搭建教程,这些测试功能就尽量简单了,大家别介意,下面来做注册功能。



切换到struts-config.xml的设计视图,右键New->Form,Action and JSP



[转载]SSH框架搭建详细图文教程



Use case填写register

Form Properties填写3个属性

username:text

password:password

nickname:text



[转载]SSH框架搭建详细图文教程



点选JSP选项,勾选Create JSP form, 路径更改为/jsp/register.jsp



[转载]SSH框架搭建详细图文教程 



现在把register.jsp与login.jsp关联,做注册成功和注册失败的跳转。

右键struts-config.xml设计视图中的regiser.jsp->New->Forward。

选择Local Action Forward

Action Path:/register

Name:registerSuccess

Path:/jsp/login.jsp

完成



[转载]SSH框架搭建详细图文教程



右键struts-config.xml设计视图中的regiser.jsp->New->Forward。

选择Local Action Forward

Action Path:/register

Name:registerFail

Path:/jsp/register.jsp

完成

struts-config.xml代码如下



[转载]SSH框架搭建详细图文教程



汉化注册页面



<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

 



    

        注册页

    

    

        

            用户名 :


            密码 :


            昵称 :


            

        


    





打开RegisterAction.java文件,实现数据的插入,修改代码如下:



    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response) {

       

        //填写的注册信息

        RegisterForm registerForm = (RegisterForm) form;

        String username = registerForm.getUsername();

        String password = registerForm.getPassword();

        String nickname = registerForm.getNickname();

       

        //检查用户名是否已被注册

        UserDAO userDAO = (UserDAO)Global.getDAO("UserDAO");

        List list = userDAO.findByUsername(username);

       

        //用户名已被注册,返回注册页面

        if(list.size() > 0){

            request.setAttribute("message", "该用户名已被注册");

            return mapping.findForward("registerFail");

        }

       

        //插入新用户

        User user = new User();

        user.setUsername(username);

        user.setPassword(password);

        user.setNickname(nickname);

        userDAO.save(user);

        request.setAttribute("message", "注册成功,请登录:" + nickname);

        return mapping.findForward("registerSuccess");

    }



打开login.jsp在body中添加一行代码<%=request.getAttribute("message")%>




重新启动Tomcat服务器,访问注册页http://localhost:8080/SSH/jsp/register.jsp

输入帐号:asd2

输入密码:asd123

输入昵称:中文不应该是乱码

点击确认

[转载]SSH框架搭建详细图文教程



页面提示:注册成功,请登录:中文ä¸åº”该是乱ç

我们期望的是"中文不应该是乱码",但它变成乱码了,很常见的一种问题。百度查了一下相关问题,原因是使用Tomcat服务器时,struts的Form提交不支持中文,于是我们需要添加一个过滤器。



在com.ssh.common包下新建一个TomcatFormFilter类,代码如下:



package com.ssh.common;



import java.io.IOException;



import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;





public class TomcatFormFilter implements Filter{

    //接收字符编码

    protected String encoding;

   

    public TomcatFormFilter(){}

   

    public void init(FilterConfig filterConfig) throws ServletException {

        //从web.xml中读取encoding值

        encoding = filterConfig.getInitParameter("encoding");

    }

   

    public void doFilter(ServletRequest request, ServletResponse response,

            FilterChain chain) throws IOException, ServletException {

        if(request.getCharacterEncoding() == null && encoding != null){

            //设置字符集

            request.setCharacterEncoding(encoding);

        }

        //继续执行

        chain.doFilter(request, response);

    }

   

    public void destroy() {}



}



拷贝这个类中注释代码部分的xml,粘贴到web.xml中



[转载]SSH框架搭建详细图文教程



重新启动Tomcat服务器,访问注册页http://localhost:8080/SSH/jsp/register.jsp



输入帐号:asd3

输入密码:asd123

输入昵称:这回中文不应该是乱码了

点击确定



[转载]SSH框架搭建详细图文教程



至此SSH框架的搭建全部完成

转载于:https://www.cnblogs.com/hoobey/p/5512924.html

更多相关:

  • 讲到第三方登录分享,第一反应大概就是友盟、ShareSDK之类。集成微信、QQ、微博三个平台的话,友盟的SDK有62.9M,ShareSDK的包有74M。如果直接集成最原始的三个平台的SDK,大小总共为51M。(关于集成前期的配置,可参考原生接入微博、微信和QQ的登录及分享)WechatIMG286.jpeg我们一般会在各个平台的授权...

  • 一、写在前面     关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了。我只能保证我的这个是我实现后才贴出来的,本文有看不懂的地方请结合官网看。(话说我感觉我写博客废话好多) 二、准备工作     通过以下官网获得相应AppI...

  •  环境准备 本文使用Maven构建,因此需要一点Maven知识。首先准备环境依赖:  Java代码                   junit          junit       ...

  • 我一直在用Ubuntu发型版本的Linux系统,很喜欢把它做得更加的方便易用,特别是Ubuntu的Server版本,因为没有Desktop的 GUI界面,也没有自动登录设置,无法通过简单的点击鼠标方式来设置自动登录,在查阅了一些资料后,发现使用重定向就可以简单的解决这个问题。     其实想要在Ubuntu Server上自动登录非常...

  • 爬取妹子网的低级教程连接如下:[爬妹子网](https://blog.csdn.net/baidu_35085676/article/details/68958267) ps:只支持单个套图下载,不支持整体下载 在说说我的这个爬虫代码的设计思路: ①当我们浏览这个网站时,会发现,每一个页面的URL都是以网站的域名+page+页数组成,...

  • if ($g) {$g.$utils || ($g.$utils = {}); } else {var $g = {};$g.$utils = {}; } /*绑定数据神器*/ $g.$utils.bind = {a(html, obj) {return this.object(html, obj);},object(h, o) {f...

  • 我们在使用Nginx搭建HTTP的web server的过程中,一般都很顺利,默认的网站根目录一般是/usr/local/nginx/html,我们也可以正常访问到Nginx的欢迎信息,比如使用下面的网址: http://localhost/ 但是发现运行一段时间后,Nginx的error日志中会定期抱怨说,没有找到favicon...

  • 菜鸟教程(runoob.com)