四、如何开始

1、导入类库

1.1、方式一:自己手动导入:

自己把Jkas内核及依赖类库下载并复制到WEB-INF目录和你项目的依赖类目录即可(一般为libs目录)

1.2、方式二:开发工具自动导入

Jkas已经提交到Maven Central及阿里云Maven仓库,用不同开发构建工具引用方式如下:

maven:

<dependency>
  <groupId>cn.org.jkas</groupId>
  <artifactId>jkas</artifactId>
  <version>2.33</version>
</dependency>

gradle:

implementation 'cn.org.jkas:jkas:2.33'

 

Gradle Kotlin DSL:

implementation("cn.org.jkas:jkas:2.33")

 

2、配置设置

2.1、框架配置文件指定控制器类的入口包:

#控制器映射包路径

app_package=test.z.app

#默认后缀
url_endwith=.do

 

2.2、容器web.xml配置(一般不用配置,直接复制过去即可)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name>JKAS</display-name>
<description>jkas web kernel</description>

  <servlet>
    <servlet-name>routerServlet</servlet-name>
    <servlet-class>org.jkas.Router</servlet-class>
 <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>routerServlet</servlet-name>
    <url-pattern>*.htm</url-pattern>
  </servlet-mapping>

    <servlet-mapping>
    <servlet-name>routerServlet</servlet-name>
    <url-pattern>/jkas.js</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>routerServlet</servlet-name>
    <url-pattern>*.jl</url-pattern>
  </servlet-mapping>

<welcome-file-list> 
    <welcome-file>index.htm</welcome-file> 
</welcome-file-list>

<session-config>
<session-timeout>30</session-timeout>
</session-config>

<resource-ref> 
    <res-ref-name>dbconfig</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref>

</web-app>

 

2.3、数据库链接池配置,分为容器数据库链接池和框架链接池两种方式(用到数据库时才配置)

不管用哪一种方式,记得把框架配置文件里数据库相关配置与容器里的数据源名称要保持一致

2.3.1、框架数据库相关配置:

[DATABASE]

#数据源类型,0为默认容器数据源,1为使用框架配置数据源,框架数据配置文件路径为data/ds/数据源文件名

ds_type=0

#数据库表前缀
table_prefix=jkas_
data_source=dbconfig //必须与resin或tomcat配置的数据源保持一致,如果用框架数据源,必须与框架数据源文件名一致

#是否开启数据库集群

db_cluster=1

#集群用来写的数据源设置,多个用逗号隔开,必须与resin或tomcat配置的数据源保持一致,如果用框架数据源,必须与框架数据源文件名一致
data_source_write=dbconfigw

#集群用来读的数据源设置,多个用逗号隔开,必须与resin或tomcat配置的数据源保持一致,如果用框架数据源,必须与框架数据源文件名一致
data_source_read=dbconfigr1,dbconfigr2

#数据库类型mysql sqlite oracle mssql 暂时只支持mysql和sqlite,非Mysql和sqlite数据库需要自行写完整的sql
db_type=mysql

#开启自定义SQL语句功能

db_custom_sql=1

#配置自定义SQL文件所在目录,SQL自定义文件与模型指定的表名同名,以.m为后缀
db_custom_sql_dir=data/sql

 

2.3.2、方式一:容器数据库链接池,分resin和tomcat两种,其他容器可自行找教程

resin:

 <character-encoding>UTF-8</character-encoding> 
    <database>
        <jndi-name>dbconfig</jndi-name><!--必须与上面系统配置文件数据源配置保持一致-->
        <driver type="com.mysql.jdbc.Driver">
        <url>jdbc:mysql://localhost:3306/dbname</url>
        <user>root</user>
        <password>123456</password>
        </driver>
 </database>

 

tomcat:

在context.xml里面配置数据库连接池

<Resource
name="dbconfig" <!--必须与上面系统配置文件数据源配置保持一致-->
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="jkasdev_u"
password="123456"
url="jdbc:mysql://localhost:3306/dbname"
maxActive="4"/>

如果用tomcat数据库链接池,记得在项目web.xml里增加相应的引用,数据源名称也要保持一致,如下:

<resource-ref> 
    <res-ref-name>dbconfig</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref>

2.3.3、方式二:框架数据库链接池

数据源连接文件在系统/data/ds/xxx,xxx为数据源名称,命名要与框架配置文件里数据库设置部分数据源名称保持一致,如:/data/ds/datasource

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/sc_test?characterEncoding=utf8&useSSL=true&useOldAliasMetadataBehavior=true
username=root
password=123456
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 延迟时间
maxWait=3000

 

3、控制器继承于org.jkas.core.C 类

 

import org.jkas.core.C;

      public class Index extends C

      {

          public void index()

             {

                echo("Hello Jkas !");

             }

      }

 

4、模型继承于org.jkas.core.M类,类的命名以M结尾

import org.jkas.core.M;

      public class UserM extends M

      {  public UserM()

               { primaryKey("user_id");

               }

        }

5、服务继承于org.jkas.core.S类

import org.jkas.core.S;

      public class UserService extends S

      {  public UserService()

               {

               }

        }

 

6、访问方式

模块名在开启模块功能时有效!

域名[/模块名]/控制器名[/方法名/参数名/参数值/参数名/参数值/.../.../].后缀 //[]方括号里面的内容为可有可无,方法名没有默认为index

如:

http://www.jkas.org/test.do

http://www.jkas.org/test/about.do

http://www.jkas.org/test/about/name/jkas/age/1.do

 

特殊情况:

方法名为数字开头:方法默认成index,自动把参数名变为id

如:http://www.jkas.org/goods/22.do 则自动访问 http://www.jkas.org/goods/index/id/22.do

 

参数个数为奇数情况:自动把第一个参数名变为id

如:http://www.jkas.org/goods/detail/22.do 则自动访问 http://www.jkas.org/goods/detail/id/22.do

      http://www.jkas.org/goods/detail/22/k.do 则自动访问 http://www.jkas.org/goods/detail/22/k.do 偶数个数不处理

      http://www.jkas.org/goods/detail/22/k/v.do 则自动访问 http://www.jkas.org/goods/detail/id/22/k/v.do