Initial commit
This commit is contained in:
commit
a93cdd1a1e
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# 项目排除路径
|
||||||
|
/out/
|
468
.idea/$PROJECT_FILE$
Normal file
468
.idea/$PROJECT_FILE$
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AnalysisProjectProfileManager">
|
||||||
|
<option name="PROJECT_PROFILE" value="Project Default" />
|
||||||
|
<option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
|
||||||
|
<scopes />
|
||||||
|
<profiles>
|
||||||
|
<profile profile_name="Project Default" version="1.0" is_locked="false">
|
||||||
|
<coding_rule class="AM_CREATES_EMPTY_JAR_FILE_ENTRY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="AM_CREATES_EMPTY_ZIP_FILE_ENTRY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="BAC_BAD_APPLET_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_BAD_CAST_TO_ABSTRACT_COLLECTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BC_BAD_CAST_TO_CONCRETE_COLLECTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_CAST" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_DOWNCAST" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_UNCONFIRMED_CAST" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_UNCONFIRMED_CAST_OF_RETURN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="BC_VACUOUS_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_ADD_OF_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_AND" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_AND_ZZ" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_IOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_IOR_OF_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_SIGNED_CHECK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_SIGNED_CHECK_HIGH_BIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BOA_BADLY_OVERRIDDEN_ADAPTER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BSHIFT_WRONG_ADD_PRIORITY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BX_BOXING_IMMEDIATELY_UNBOXED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_UNBOXING_IMMEDIATELY_REBOXED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_ELEMENT_STORE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_LOCAL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_RETURN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CD_CIRCULAR_DEPENDENCY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CI_CONFUSED_INHERITANCE" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="CNT_ROUGH_CONSTANT_VALUE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CN_IDIOM" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CN_IDIOM_NO_SUPER_CALL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CO_ABSTRACT_SELF" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CO_COMPARETO_INCORRECT_FLOATING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CO_COMPARETO_RESULTS_MIN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="CO_SELF_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DB_DUPLICATE_BRANCHES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DB_DUPLICATE_SWITCH_CLAUSES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DC_DOUBLECHECK" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DC_PARTIALLY_CONSTRUCTED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DE_MIGHT_DROP" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DE_MIGHT_IGNORE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_INCREMENT_IN_RETURN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_IN_RETURN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_OF_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DLS_DEAD_STORE_OF_CLASS_LITERAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_OVERWRITTEN_INCREMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_BOOLEAN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_SHARED_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ARGUMENTS_WRONG_ORDER" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_BAD_MONTH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_BLOCKING_METHODS_ON_URL" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_CALLING_NEXT_FROM_HASNEXT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_COLLECTION_OF_URLS" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_CONSTANT_DB_PASSWORD" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_DOH" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_EMPTY_DB_PASSWORD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_HARDCODED_ABSOLUTE_FILENAME" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_HASHCODE_ON_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_TOSTRING_ON_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_NONSERIALIZABLE_OBJECT_WRITTEN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_RANDOM_USED_ONLY_ONCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_UNSUPPORTED_METHOD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_USELESS_SUBSTRING" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_VACUOUS_SELF_COLLECTION_CALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DM_BOOLEAN_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_FOR_COMPARE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_FOR_PARSING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_TOSTRING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_CONVERT_CASE" level="INFO" enabled="true" />
|
||||||
|
<coding_rule class="DM_DEFAULT_ENCODING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DM_EXIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_FP_NUMBER_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_GC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_INVALID_MIN_MAX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_MONITOR_WAIT_ON_CONDITION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NEW_FOR_GETCLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NEXTINT_VIA_NEXTDOUBLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NUMBER_CTOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DM_RUN_FINALIZERS_ON_EXIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_TOSTRING" level="INFO" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_VOID_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_USELESS_THREAD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DP_DO_INSIDE_DO_PRIVILEGED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EC_ARRAY_AND_NONARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_BAD_ARRAY_COMPARE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_INCOMPATIBLE_ARRAY_COMPARE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="EC_NULL_ARG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_CLASS_AND_INTERFACE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_INTERFACES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_TYPES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_REP" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_REP2" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_STATIC_REP2" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ABSTRACT_SELF" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ALWAYS_FALSE" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ALWAYS_TRUE" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_COMPARETO_USE_OBJECT_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EQ_COMPARING_CLASS_NAMES" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_DOESNT_OVERRIDE_EQUALS" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="EQ_DONT_DEFINE_EQUALS_FOR_ENUM" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_GETCLASS_AND_CLASS_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OTHER_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OTHER_USE_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_SELF_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_SELF_USE_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_UNUSUAL" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="ES_COMPARING_PARAMETER_STRING_WITH_EQ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ES_COMPARING_STRINGS_WITH_EQ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ESync_EMPTY_SYNC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FB_MISSING_EXPECTED_WARNING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="FB_UNEXPECTED_WARNING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="FE_FLOATING_POINT_EQUALITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FI_EMPTY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_EXPLICIT_INVOCATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_FINALIZER_NULLS_FIELDS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_FINALIZER_ONLY_NULLS_FIELDS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_MISSING_SUPER_CALL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_NULLIFY_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FI_PUBLIC_SHOULD_BE_PROTECTED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_USELESS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="FL_MATH_USING_FLOAT_PRECISION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="GC_UNCHECKED_TYPE_IN_GENERIC_CALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="GC_UNRELATED_TYPES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_EQUALS_NO_HASHCODE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HE_EQUALS_USE_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_HASHCODE_NO_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_HASHCODE_USE_OBJECT_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_INHERITS_EQUALS_USE_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_USE_OF_UNHASHABLE_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HRS_REQUEST_PARAMETER_TO_COOKIE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HSC_HUGE_SHARED_STRING_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_BAD_SHIFT_AMOUNT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_IDIV_CAST_TO_DOUBLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INT_2_LONG_AS_INSTANT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IC_INIT_CIRCULARITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IIL_ELEMENTS_GET_LENGTH_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PATTERN_COMPILE_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PATTERN_COMPILE_IN_LOOP_INDIRECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PREPARE_STATEMENT_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIO_INEFFICIENT_INDEX_OF" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIO_INEFFICIENT_LAST_INDEX_OF" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_BAD_SUITE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_NO_TESTS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_SETUP_NO_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_SUITE_NOT_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_TEARDOWN_NO_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_CONTAINER_ADDED_TO_ITSELF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_INFINITE_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_INFINITE_RECURSIVE_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IMA_INEFFICIENT_MEMBER_ACCESS" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IMSE_DONT_CATCH_IMSE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IM_BAD_CHECK_FOR_ODD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IM_MULTIPLYING_RESULT_OF_IREM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_INT_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_REM_BY_1" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_VACUOUS_BIT_OPERATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_VACUOUS_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IO_APPENDING_TO_OBJECT_OUTPUT_STREAM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IS2_INCONSISTENT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ISC_INSTANTIATE_STATIC_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IS_FIELD_NOT_GUARDED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ITA_INEFFICIENT_TO_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IT_NO_SUCH_ELEMENT" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="JLM_JSR166_LOCK_MONITORENTER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="JLM_JSR166_UTILCONCURRENT_MONITORENTER" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="LI_LAZY_INIT_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="LI_LAZY_INIT_UPDATE_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ME_ENUM_FIELD_SETTER" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="ME_MUTABLE_ENUM_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MF_CLASS_MASKS_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MF_METHOD_MASKS_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ML_SYNC_ON_UPDATED_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MSF_MUTABLE_SERVLET_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_CANNOT_BE_FINAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_EXPOSE_REP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MS_FINAL_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_MUTABLE_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_MUTABLE_COLLECTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MS_MUTABLE_COLLECTION_PKGPROTECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MS_MUTABLE_HASHTABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_OOI_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_SHOULD_BE_FINAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_SHOULD_BE_REFACTORED_TO_BE_FINAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="MTIA_SUSPECT_SERVLET_INSTANCE_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MTIA_SUSPECT_STRUTS_INSTANCE_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MWN_MISMATCHED_NOTIFY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MWN_MISMATCHED_WAIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NM_BAD_EQUAL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_CLASS_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_CLASS_NOT_EXCEPTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_CONFUSING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_FIELD_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_LCASE_HASHCODE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_LCASE_TOSTRING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_METHOD_CONSTRUCTOR_CONFUSION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_METHOD_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_SAME_SIMPLE_NAME_AS_INTERFACE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_VERY_CONFUSING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_VERY_CONFUSING_INTENTIONAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_WRONG_PACKAGE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_WRONG_PACKAGE_INTENTIONAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NN_NAKED_NOTIFY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NOISE_FIELD_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_METHOD_CALL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_NULL_DEREFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_OPERATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NO_NOTIFY_NOT_NOTIFYALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ALWAYS_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ALWAYS_NULL_EXCEPTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ARGUMENT_MIGHT_BE_NULL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_BOOLEAN_RETURN_NULL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_CLONE_COULD_RETURN_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_CLOSING_NULL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_DEREFERENCE_OF_READLINE_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_GUARANTEED_DEREF" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_IMMEDIATE_DEREFERENCE_OF_READLINE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_LOAD_OF_KNOWN_NULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_METHOD_RETURN_RELAXING_ANNOTATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="NP_NONNULL_PARAM_VIOLATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NONNULL_RETURN_VIOLATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_INSTANCEOF" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_EXCEPTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF_NONVIRTUAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_OPTIONAL_RETURN_NULL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_STORE_INTO_NONNULL_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_SYNC_AND_NULL_CHECK_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_TOSTRING_COULD_RETURN_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_UNWRITTEN_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="NS_DANGEROUS_NON_SHORT_CIRCUIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NS_NON_SHORT_CIRCUIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="OBL_UNSATISFIED_OBLIGATION" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="ODR_OPEN_DATABASE_RESOURCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="OS_OPEN_STREAM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="OS_OPEN_STREAM_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="PS_PUBLIC_SEMAPHORES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="PT_ABSOLUTE_PATH_TRAVERSAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="PT_RELATIVE_PATH_TRAVERSAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="PZLA_PREFER_ZERO_LENGTH_ARRAYS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="QF_QUESTIONABLE_FOR_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_INDEX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_LENGTH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_OFFSET" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_STRING_INDEX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON_BAD_PRACTICE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="REC_CATCH_EXCEPTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RE_POSSIBLE_UNINTENDED_PATTERN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RI_REDUNDANT_INTERFACES" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RR_NOT_CHECKED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RS_READOBJECT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RU_INVOKE_RUN" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_01_TO_INT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_ABSOLUTE_VALUE_OF_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_ABSOLUTE_VALUE_OF_RANDOM_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_CHECK_FOR_POSITIVE_INDEXOF" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_DONT_JUST_NULL_CHECK_READLINE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_EXCEPTION_NOT_THROWN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_NEGATING_RESULT_OF_COMPARETO" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_REM_OF_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_REM_OF_RANDOM_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_INFERRED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RpC_REPEATED_CONDITIONAL_TEST" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_DOUBLE_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_COMPUTATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_DOUBLE_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_COMPUTATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SBSC_USE_STRINGBUFFER_CONCATENATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SC_START_IN_CTOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD" level="MINOR" enabled="false" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD_INNER_CLASS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD_STORE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_INNER_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_METHOD_MUST_BE_PRIVATE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONFINAL_SERIALVERSIONID" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONLONG_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONSTATIC_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SUITABLE_CONSTRUCTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_READ_RESOLVE_IS_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_READ_RESOLVE_MUST_RETURN_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_TRANSIENT_FIELD_NOT_RESTORED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_SWITCH_FALLTHROUGH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_SWITCH_NO_DEFAULT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC_ANON" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_THREADLOCAL_DEADLY_EMBRACE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SIO_SUPERFLUOUS_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SI_INSTANCE_BEFORE_FINALS_ASSIGNED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SP_SPIN_ON_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SQL_BAD_PREPARED_STATEMENT_ACCESS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_BAD_RESULTSET_ACCESS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SR_NOT_CHECKED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SS_SHOULD_BE_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_STATIC_CALENDAR_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STI_INTERRUPTED_ON_CURRENTTHREAD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STI_INTERRUPTED_ON_UNKNOWNTHREAD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SWL_SLEEP_WITH_LOCK_HELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SW_SWING_METHODS_INVOKED_IN_SWING_THREAD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="TLW_TWO_LOCK_WAIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UCF_USELESS_CONTROL_FLOW" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UCF_USELESS_CONTROL_FLOW_NEXT_LINE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UC_USELESS_CONDITION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_CONDITION_TYPE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_OBJECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_OBJECT_STACK" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_VOID_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UG_SYNC_SET_UNSYNC_GET" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UI_INHERITANCE_UNSAFE_GETRESOURCE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UL_UNRELEASED_LOCK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UL_UNRELEASED_LOCK_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UM_UNNECESSARY_MATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UPM_UNCALLED_PRIVATE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="URF_UNREAD_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UR_UNINIT_READ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="USM_USELESS_ABSTRACT_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="USM_USELESS_SUBCLASS_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UUF_UNUSED_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UWF_NULL_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UWF_UNWRITTEN_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UW_UNCOND_WAIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_ILLEGAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_MISSING_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_USES_NEWLINE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VO_VOLATILE_INCREMENT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="VO_VOLATILE_REFERENCE_TO_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VR_UNRESOLVABLE_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="WA_AWAIT_NOT_IN_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WA_NOT_IN_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WMI_WRONG_MAP_ITERATOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WS_WRITEOBJECT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XFB_XML_FACTORY_BYPASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_JSP_WRITER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_SEND_ERROR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER" level="CRITICAL" enabled="true" />
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
<list size="0" />
|
||||||
|
</component>
|
||||||
|
<component name="SuppressionsComponent">
|
||||||
|
<option name="suppComments" value="[]" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/.gitignore
vendored
Normal file
8
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# 基于编辑器的 HTTP 客户端请求
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
13
.idea/artifacts/shop_war_exploded.xml
Normal file
13
.idea/artifacts/shop_war_exploded.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<component name="ArtifactManager">
|
||||||
|
<artifact type="exploded-war" name="shop:war exploded">
|
||||||
|
<output-path>$PROJECT_DIR$/out/artifacts/shop_war_exploded</output-path>
|
||||||
|
<root id="root">
|
||||||
|
<element id="directory" name="WEB-INF">
|
||||||
|
<element id="directory" name="classes">
|
||||||
|
<element id="module-output" name="shop" />
|
||||||
|
</element>
|
||||||
|
</element>
|
||||||
|
<element id="javaee-facet-resources" facet="shop/web/Web" />
|
||||||
|
</root>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
12
.idea/dataSources.xml
Normal file
12
.idea/dataSources.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||||
|
<data-source source="LOCAL" name="@localhost" uuid="b8880353-bb59-47b8-bfeb-7d6b1d780e89">
|
||||||
|
<driver-ref>mysql.8</driver-ref>
|
||||||
|
<synchronize>true</synchronize>
|
||||||
|
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
|
||||||
|
<jdbc-url>jdbc:mysql://localhost:3306</jdbc-url>
|
||||||
|
<working-dir>$ProjectFileDir$</working-dir>
|
||||||
|
</data-source>
|
||||||
|
</component>
|
||||||
|
</project>
|
204
.idea/intellij-javadocs-4.0.1.xml
Normal file
204
.idea/intellij-javadocs-4.0.1.xml
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaDocConfiguration">
|
||||||
|
<GENERAL>
|
||||||
|
<MODE>UPDATE</MODE>
|
||||||
|
<OVERRIDDEN_METHODS>false</OVERRIDDEN_METHODS>
|
||||||
|
<SPLITTED_CLASS_NAME>true</SPLITTED_CLASS_NAME>
|
||||||
|
<LEVELS>
|
||||||
|
<LEVEL>FIELD</LEVEL>
|
||||||
|
<LEVEL>METHOD</LEVEL>
|
||||||
|
<LEVEL>TYPE</LEVEL>
|
||||||
|
</LEVELS>
|
||||||
|
<VISIBILITIES>
|
||||||
|
<VISIBILITY>PUBLIC</VISIBILITY>
|
||||||
|
<VISIBILITY>PROTECTED</VISIBILITY>
|
||||||
|
<VISIBILITY>DEFAULT</VISIBILITY>
|
||||||
|
</VISIBILITIES>
|
||||||
|
</GENERAL>
|
||||||
|
<TEMPLATES>
|
||||||
|
<CLASSES>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>^.*(public|protected|private)*.+interface\s+\w+.*</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The interface ${name}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>^.*(public|protected|private)*.+enum\s+\w+.*</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The enum ${name}.\n
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>^.*(public|protected|private)*.+class\s+\w+.*</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The type ${name}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The type ${name}.\n
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
</CLASSES>
|
||||||
|
<CONSTRUCTORS>
|
||||||
|
<CONSTRUCTOR>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* Instantiates a new ${name}.\n
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</CONSTRUCTOR>
|
||||||
|
</CONSTRUCTORS>
|
||||||
|
<METHODS>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>^.*(public|protected|private)*\s*.*(\w(\s*<.+>)*)+\s+get\w+\s*\(.*\).+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* Gets ${partName}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if isNotVoid>
|
||||||
|
*\n
|
||||||
|
* @return the ${partName}\n
|
||||||
|
</#if>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>^.*(public|protected|private)*\s*.*(void|\w(\s*<.+>)*)+\s+set\w+\s*\(.*\).+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* Sets ${partName}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if isNotVoid>
|
||||||
|
*\n
|
||||||
|
* @return the ${partName}\n
|
||||||
|
</#if>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>^.*((public\s+static)|(static\s+public))\s+void\s+main\s*\(\s*String\s*(\[\s*\]|\.\.\.)\s+\w+\s*\).+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The entry point of application.\n
|
||||||
|
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
* @param ${element.parameterList.parameters[0].name} the input arguments\n
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* ${name}<#if isNotVoid> ${return}</#if>.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if isNotVoid>
|
||||||
|
*\n
|
||||||
|
* @return the ${return}\n
|
||||||
|
</#if>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
</METHODS>
|
||||||
|
<FIELDS>
|
||||||
|
<FIELD>
|
||||||
|
<KEY>^.*(public|protected|private)*.+static.*(\w\s\w)+.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The constant ${element.getName()}.\n
|
||||||
|
*/</VALUE>
|
||||||
|
</FIELD>
|
||||||
|
<FIELD>
|
||||||
|
<KEY>^.*(public|protected|private)*.*(\w\s\w)+.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
<#if element.parent.isInterface()>
|
||||||
|
* The constant ${element.getName()}.\n
|
||||||
|
<#else>
|
||||||
|
* The ${name}.\n
|
||||||
|
</#if> */</VALUE>
|
||||||
|
</FIELD>
|
||||||
|
<FIELD>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
<#if element.parent.isEnum()>
|
||||||
|
*${name} ${typeName}.\n
|
||||||
|
<#else>
|
||||||
|
* The ${name}.\n
|
||||||
|
</#if>*/</VALUE>
|
||||||
|
</FIELD>
|
||||||
|
</FIELDS>
|
||||||
|
</TEMPLATES>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/jpa-buddy.xml
Normal file
6
.idea/jpa-buddy.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JpaBuddyIdeaProjectConfig">
|
||||||
|
<option name="renamerInitialized" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
10
.idea/libraries/lib.xml
Normal file
10
.idea/libraries/lib.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="lib">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$PROJECT_DIR$/web/WEB-INF/lib" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
<jarDirectory url="file://$PROJECT_DIR$/web/WEB-INF/lib" recursive="false" />
|
||||||
|
</library>
|
||||||
|
</component>
|
18
.idea/misc.xml
Normal file
18
.idea/misc.xml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="FindBugsConfigurable">
|
||||||
|
<option name="make" value="true" />
|
||||||
|
<option name="effort" value="default" />
|
||||||
|
<option name="priority" value="Medium" />
|
||||||
|
<option name="excludeFilter" value="" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectType">
|
||||||
|
<option name="id" value="jpab" />
|
||||||
|
</component>
|
||||||
|
<component name="SuppressionsComponent">
|
||||||
|
<option name="suppComments" value="[]" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/shop.iml" filepath="$PROJECT_DIR$/shop.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
465
.idea/qaplug_profiles.xml
Normal file
465
.idea/qaplug_profiles.xml
Normal file
@ -0,0 +1,465 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AnalysisProjectProfileManager">
|
||||||
|
<option name="PROJECT_PROFILE" value="Project Default" />
|
||||||
|
<option name="USE_PROJECT_LEVEL_SETTINGS" value="false" />
|
||||||
|
<scopes />
|
||||||
|
<profiles>
|
||||||
|
<profile profile_name="Project Default" version="1.0" is_locked="false">
|
||||||
|
<coding_rule class="AM_CREATES_EMPTY_JAR_FILE_ENTRY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="AM_CREATES_EMPTY_ZIP_FILE_ENTRY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="BAC_BAD_APPLET_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_BAD_CAST_TO_ABSTRACT_COLLECTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BC_BAD_CAST_TO_CONCRETE_COLLECTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_CAST" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_DOWNCAST" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BC_IMPOSSIBLE_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_UNCONFIRMED_CAST" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BC_UNCONFIRMED_CAST_OF_RETURN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="BC_VACUOUS_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_ADD_OF_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_AND" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_AND_ZZ" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_IOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_IOR_OF_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_SIGNED_CHECK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BIT_SIGNED_CHECK_HIGH_BIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BOA_BADLY_OVERRIDDEN_ADAPTER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="BSHIFT_WRONG_ADD_PRIORITY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="BX_BOXING_IMMEDIATELY_UNBOXED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="BX_UNBOXING_IMMEDIATELY_REBOXED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_ELEMENT_STORE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_LOCAL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CAA_COVARIANT_ARRAY_RETURN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CD_CIRCULAR_DEPENDENCY" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CI_CONFUSED_INHERITANCE" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="CNT_ROUGH_CONSTANT_VALUE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CN_IDIOM" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CN_IDIOM_NO_SUPER_CALL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CO_ABSTRACT_SELF" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="CO_COMPARETO_INCORRECT_FLOATING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="CO_COMPARETO_RESULTS_MIN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="CO_SELF_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DB_DUPLICATE_BRANCHES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DB_DUPLICATE_SWITCH_CLAUSES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DC_DOUBLECHECK" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DC_PARTIALLY_CONSTRUCTED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DE_MIGHT_DROP" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DE_MIGHT_IGNORE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_INCREMENT_IN_RETURN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_IN_RETURN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_OF_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DLS_DEAD_STORE_OF_CLASS_LITERAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DLS_OVERWRITTEN_INCREMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_BOOLEAN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_SHARED_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ARGUMENTS_WRONG_ORDER" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_BAD_MONTH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_BLOCKING_METHODS_ON_URL" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_CALLING_NEXT_FROM_HASNEXT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_COLLECTION_OF_URLS" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_CONSTANT_DB_PASSWORD" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="DMI_DOH" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_EMPTY_DB_PASSWORD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_HARDCODED_ABSOLUTE_FILENAME" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_HASHCODE_ON_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_INVOKING_TOSTRING_ON_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_NONSERIALIZABLE_OBJECT_WRITTEN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_RANDOM_USED_ONLY_ONCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_UNSUPPORTED_METHOD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_USELESS_SUBSTRING" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="DMI_VACUOUS_SELF_COLLECTION_CALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DM_BOOLEAN_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_FOR_COMPARE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_FOR_PARSING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_BOXED_PRIMITIVE_TOSTRING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_CONVERT_CASE" level="INFO" enabled="true" />
|
||||||
|
<coding_rule class="DM_DEFAULT_ENCODING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="DM_EXIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_FP_NUMBER_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_GC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_INVALID_MIN_MAX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="DM_MONITOR_WAIT_ON_CONDITION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NEW_FOR_GETCLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NEXTINT_VIA_NEXTDOUBLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_NUMBER_CTOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="DM_RUN_FINALIZERS_ON_EXIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_TOSTRING" level="INFO" enabled="true" />
|
||||||
|
<coding_rule class="DM_STRING_VOID_CTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DM_USELESS_THREAD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="DP_DO_INSIDE_DO_PRIVILEGED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EC_ARRAY_AND_NONARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_BAD_ARRAY_COMPARE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_INCOMPATIBLE_ARRAY_COMPARE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="EC_NULL_ARG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_CLASS_AND_INTERFACE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_INTERFACES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_TYPES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_REP" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_REP2" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EI_EXPOSE_STATIC_REP2" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ABSTRACT_SELF" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ALWAYS_FALSE" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="EQ_ALWAYS_TRUE" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_COMPARETO_USE_OBJECT_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EQ_COMPARING_CLASS_NAMES" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_DOESNT_OVERRIDE_EQUALS" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="EQ_DONT_DEFINE_EQUALS_FOR_ENUM" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_GETCLASS_AND_CLASS_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OTHER_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OTHER_USE_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_SELF_NO_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_SELF_USE_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="EQ_UNUSUAL" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="ES_COMPARING_PARAMETER_STRING_WITH_EQ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ES_COMPARING_STRINGS_WITH_EQ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ESync_EMPTY_SYNC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FB_MISSING_EXPECTED_WARNING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="FB_UNEXPECTED_WARNING" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="FE_FLOATING_POINT_EQUALITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FI_EMPTY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_EXPLICIT_INVOCATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_FINALIZER_NULLS_FIELDS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_FINALIZER_ONLY_NULLS_FIELDS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_MISSING_SUPER_CALL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_NULLIFY_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="FI_PUBLIC_SHOULD_BE_PROTECTED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="FI_USELESS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="FL_MATH_USING_FLOAT_PRECISION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="GC_UNCHECKED_TYPE_IN_GENERIC_CALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="GC_UNRELATED_TYPES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_EQUALS_NO_HASHCODE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HE_EQUALS_USE_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_HASHCODE_NO_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_HASHCODE_USE_OBJECT_EQUALS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_INHERITS_EQUALS_USE_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HE_USE_OF_UNHASHABLE_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="HRS_REQUEST_PARAMETER_TO_COOKIE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HRS_REQUEST_PARAMETER_TO_HTTP_HEADER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="HSC_HUGE_SHARED_STRING_CONSTANT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_BAD_SHIFT_AMOUNT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_IDIV_CAST_TO_DOUBLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INT_2_LONG_AS_INSTANT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IC_INIT_CIRCULARITY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IIL_ELEMENTS_GET_LENGTH_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PATTERN_COMPILE_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PATTERN_COMPILE_IN_LOOP_INDIRECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIL_PREPARE_STATEMENT_IN_LOOP" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIO_INEFFICIENT_INDEX_OF" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IIO_INEFFICIENT_LAST_INDEX_OF" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_BAD_SUITE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_NO_TESTS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_SETUP_NO_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_SUITE_NOT_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IJU_TEARDOWN_NO_SUPER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_CONTAINER_ADDED_TO_ITSELF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_INFINITE_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IL_INFINITE_RECURSIVE_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IMA_INEFFICIENT_MEMBER_ACCESS" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="IMSE_DONT_CATCH_IMSE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IM_AVERAGE_COMPUTATION_COULD_OVERFLOW" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IM_BAD_CHECK_FOR_ODD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IM_MULTIPLYING_RESULT_OF_IREM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_INT_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_COMPARISON_WITH_SIGNED_BYTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_BAD_REM_BY_1" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_VACUOUS_BIT_OPERATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="INT_VACUOUS_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IO_APPENDING_TO_OBJECT_OUTPUT_STREAM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IS2_INCONSISTENT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ISC_INSTANTIATE_STATIC_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="IS_FIELD_NOT_GUARDED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ITA_INEFFICIENT_TO_ARRAY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="IT_NO_SUCH_ELEMENT" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="JLM_JSR166_LOCK_MONITORENTER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="JLM_JSR166_UTILCONCURRENT_MONITORENTER" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="LI_LAZY_INIT_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="LI_LAZY_INIT_UPDATE_STATIC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ME_ENUM_FIELD_SETTER" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="ME_MUTABLE_ENUM_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MF_CLASS_MASKS_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MF_METHOD_MASKS_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="ML_SYNC_ON_UPDATED_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MSF_MUTABLE_SERVLET_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_CANNOT_BE_FINAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_EXPOSE_REP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MS_FINAL_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_MUTABLE_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_MUTABLE_COLLECTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MS_MUTABLE_COLLECTION_PKGPROTECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="MS_MUTABLE_HASHTABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_OOI_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_PKGPROTECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_SHOULD_BE_FINAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="MS_SHOULD_BE_REFACTORED_TO_BE_FINAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="MTIA_SUSPECT_SERVLET_INSTANCE_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MTIA_SUSPECT_STRUTS_INSTANCE_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MWN_MISMATCHED_NOTIFY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="MWN_MISMATCHED_WAIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NM_BAD_EQUAL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_CLASS_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_CLASS_NOT_EXCEPTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_CONFUSING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_FIELD_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_LCASE_HASHCODE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_LCASE_TOSTRING" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_METHOD_CONSTRUCTOR_CONFUSION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_METHOD_NAMING_CONVENTION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NM_SAME_SIMPLE_NAME_AS_INTERFACE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_VERY_CONFUSING" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_VERY_CONFUSING_INTENTIONAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_WRONG_PACKAGE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NM_WRONG_PACKAGE_INTENTIONAL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NN_NAKED_NOTIFY" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NOISE_FIELD_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_METHOD_CALL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_NULL_DEREFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NOISE_OPERATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NO_NOTIFY_NOT_NOTIFYALL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ALWAYS_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ALWAYS_NULL_EXCEPTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_ARGUMENT_MIGHT_BE_NULL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_BOOLEAN_RETURN_NULL" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_CLONE_COULD_RETURN_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_CLOSING_NULL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_DEREFERENCE_OF_READLINE_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_GUARANTEED_DEREF" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_IMMEDIATE_DEREFERENCE_OF_READLINE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_LOAD_OF_KNOWN_NULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_METHOD_RETURN_RELAXING_ANNOTATION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="NP_NONNULL_PARAM_VIOLATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NONNULL_RETURN_VIOLATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_INSTANCEOF" level="BLOCKER" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_EXCEPTION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_NULL_PARAM_DEREF_NONVIRTUAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_OPTIONAL_RETURN_NULL" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_STORE_INTO_NONNULL_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_SYNC_AND_NULL_CHECK_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="NP_TOSTRING_COULD_RETURN_NULL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NP_UNWRITTEN_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="NS_DANGEROUS_NON_SHORT_CIRCUIT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="NS_NON_SHORT_CIRCUIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="OBL_UNSATISFIED_OBLIGATION" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="ODR_OPEN_DATABASE_RESOURCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="OS_OPEN_STREAM" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="OS_OPEN_STREAM_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="PS_PUBLIC_SEMAPHORES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="PT_ABSOLUTE_PATH_TRAVERSAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="PT_RELATIVE_PATH_TRAVERSAL" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="PZLA_PREFER_ZERO_LENGTH_ARRAYS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="QF_QUESTIONABLE_FOR_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_INDEX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_LENGTH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_ARRAY_OFFSET" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RANGE_STRING_INDEX" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON_BAD_PRACTICE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="REC_CATCH_EXCEPTION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RE_POSSIBLE_UNINTENDED_PATTERN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RI_REDUNDANT_INTERFACES" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RR_NOT_CHECKED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RS_READOBJECT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RU_INVOKE_RUN" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_01_TO_INT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_ABSOLUTE_VALUE_OF_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_ABSOLUTE_VALUE_OF_RANDOM_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_CHECK_FOR_POSITIVE_INDEXOF" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_DONT_JUST_NULL_CHECK_READLINE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_EXCEPTION_NOT_THROWN" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_NEGATING_RESULT_OF_COMPARETO" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_REM_OF_HASHCODE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_REM_OF_RANDOM_INT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_INFERRED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="RpC_REPEATED_CONDITIONAL_TEST" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_DOUBLE_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_FIELD_SELF_COMPUTATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_DOUBLE_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_ASSIGNMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_COMPARISON" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SA_LOCAL_SELF_COMPUTATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SBSC_USE_STRINGBUFFER_CONCATENATION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SC_START_IN_CTOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD" level="MINOR" enabled="false" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD_INNER_CLASS" level="MINOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_BAD_FIELD_STORE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_INNER_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_METHOD_MUST_BE_PRIVATE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONFINAL_SERIALVERSIONID" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONLONG_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NONSTATIC_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SERIALVERSIONID" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SUITABLE_CONSTRUCTOR" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_PRIVATE_READ_RESOLVE_NOT_INHERITED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_READ_RESOLVE_IS_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_READ_RESOLVE_MUST_RETURN_OBJECT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_TRANSIENT_FIELD_NOT_RESTORED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_SWITCH_FALLTHROUGH" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SF_SWITCH_NO_DEFAULT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC_ANON" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SIC_THREADLOCAL_DEADLY_EMBRACE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="SIO_SUPERFLUOUS_INSTANCEOF" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SI_INSTANCE_BEFORE_FINALS_ASSIGNED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SP_SPIN_ON_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SQL_BAD_PREPARED_STATEMENT_ACCESS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_BAD_RESULTSET_ACCESS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SR_NOT_CHECKED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="SS_SHOULD_BE_STATIC" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_STATIC_CALENDAR_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STI_INTERRUPTED_ON_CURRENTTHREAD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="STI_INTERRUPTED_ON_UNKNOWNTHREAD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SWL_SLEEP_WITH_LOCK_HELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="SW_SWING_METHODS_INVOKED_IN_SWING_THREAD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="TLW_TWO_LOCK_WAIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UCF_USELESS_CONTROL_FLOW" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UCF_USELESS_CONTROL_FLOW_NEXT_LINE" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UC_USELESS_CONDITION" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_CONDITION_TYPE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_OBJECT" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_OBJECT_STACK" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UC_USELESS_VOID_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UG_SYNC_SET_UNSYNC_GET" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UI_INHERITANCE_UNSAFE_GETRESOURCE" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UL_UNRELEASED_LOCK" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UL_UNRELEASED_LOCK_EXCEPTION_PATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UM_UNNECESSARY_MATH" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UPM_UNCALLED_PRIVATE_METHOD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="URF_UNREAD_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UR_UNINIT_READ" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="USM_USELESS_ABSTRACT_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="USM_USELESS_SUBCLASS_METHOD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UUF_UNUSED_FIELD" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UWF_NULL_FIELD" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="UWF_UNWRITTEN_FIELD" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="UW_UNCOND_WAIT" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION_FROM_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_BAD_CONVERSION_TO_BOOLEAN" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_EXPECTED_MESSAGE_FORMAT_SUPPLIED" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_EXTRA_ARGUMENTS_PASSED" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_ILLEGAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_MISSING_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_NO_PREVIOUS_ARGUMENT" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VA_FORMAT_STRING_USES_NEWLINE" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="VO_VOLATILE_INCREMENT" level="CRITICAL" enabled="false" />
|
||||||
|
<coding_rule class="VO_VOLATILE_REFERENCE_TO_ARRAY" level="MAJOR" enabled="true" />
|
||||||
|
<coding_rule class="VR_UNRESOLVABLE_REFERENCE" level="MAJOR" enabled="false" />
|
||||||
|
<coding_rule class="WA_AWAIT_NOT_IN_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WA_NOT_IN_LOOP" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WMI_WRONG_MAP_ITERATOR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="WS_WRITEOBJECT_SYNC" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XFB_XML_FACTORY_BYPASS" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_JSP_WRITER" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_SEND_ERROR" level="CRITICAL" enabled="true" />
|
||||||
|
<coding_rule class="XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER" level="CRITICAL" enabled="true" />
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
<list size="0" />
|
||||||
|
</component>
|
||||||
|
</project>
|
124
.idea/uiDesigner.xml
Normal file
124
.idea/uiDesigner.xml
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Palette2">
|
||||||
|
<group name="Swing">
|
||||||
|
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="Button" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="RadioButton" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="CheckBox" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="Label" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
|
<preferred-size width="150" height="-1" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
|
<preferred-size width="150" height="-1" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
|
<preferred-size width="150" height="-1" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||||
|
<preferred-size width="200" height="200" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||||
|
<preferred-size width="200" height="200" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||||
|
<preferred-size width="-1" height="20" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||||
|
</item>
|
||||||
|
</group>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
24
shop.iml
Normal file
24
shop.iml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="web" name="Web">
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
|
||||||
|
</descriptors>
|
||||||
|
<webroots>
|
||||||
|
<root url="file://$MODULE_DIR$/web" relative="/" />
|
||||||
|
</webroots>
|
||||||
|
</configuration>
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="lib" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
15
src/c3p0-config.xml
Normal file
15
src/c3p0-config.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<c3p0-config>
|
||||||
|
<default-config>
|
||||||
|
<property name="driverClass">com.mysql.jdbc.Driver</property>
|
||||||
|
<property name="jdbcUrl">jdbc:mysql://bj-cynosdbmysql-grp-68yeo4fq.sql.tencentcdb.com:29208/shopping?useSSL=true&characterEncoding=UTF-8</property>
|
||||||
|
<property name="user">mysql</property>
|
||||||
|
<property name="password">MYSQLmysql123</property>
|
||||||
|
<property name="checkoutTimeout">30000</property>
|
||||||
|
<property name="initialPoolSize">10</property>
|
||||||
|
<property name="maxIdleTime">30</property>
|
||||||
|
<property name="maxPoolSize">100</property>
|
||||||
|
<property name="minPoolSize">10</property>
|
||||||
|
</default-config>
|
||||||
|
|
||||||
|
</c3p0-config>
|
26
src/com/qf/controller/AddressController.java
Normal file
26
src/com/qf/controller/AddressController.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import com.qf.service.CartService;
|
||||||
|
import com.qf.service.impl.CartServiceImpl;
|
||||||
|
import com.qf.utils.Constants;
|
||||||
|
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
@WebServlet("/address")
|
||||||
|
public class AddressController extends BaseServlet {
|
||||||
|
|
||||||
|
public String show(HttpServletRequest request, HttpServletResponse response){
|
||||||
|
|
||||||
|
//1.获取请求参数
|
||||||
|
|
||||||
|
//2.调用对应的业务逻辑 清空购物车
|
||||||
|
|
||||||
|
//3.转发到展示方法中
|
||||||
|
return Constants.FORWARD + "/cart?method=show";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
73
src/com/qf/controller/BaseServlet.java
Normal file
73
src/com/qf/controller/BaseServlet.java
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import com.qf.utils.Constants;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public class BaseServlet extends HttpServlet {
|
||||||
|
//重写service方法,来处理反射的业务逻辑
|
||||||
|
@Override
|
||||||
|
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||||
|
req.setCharacterEncoding("utf-8");
|
||||||
|
|
||||||
|
|
||||||
|
//1.获取请求参数(标识符)
|
||||||
|
String methodStr =req.getParameter(Constants.TAG);
|
||||||
|
//我们在这做一个处理。2.如果method没有获取到值!我们就跳转到首页!(标识符异常处理)
|
||||||
|
if (methodStr==null&& methodStr.equals("")){
|
||||||
|
methodStr= Constants.INDEX;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//3.反射调用对应的业务逻辑方法
|
||||||
|
Class clazz=this.getClass();
|
||||||
|
try {
|
||||||
|
Method method=clazz.getMethod(methodStr, HttpServletRequest.class, HttpServletResponse.class);
|
||||||
|
Object result= method.invoke(this,req,resp);
|
||||||
|
|
||||||
|
//4.集中处理返回值响应
|
||||||
|
if (result != null) {
|
||||||
|
//转发 重定向 返回字符串
|
||||||
|
String str=(String)result;
|
||||||
|
if (str.startsWith(Constants.FORWARD)){
|
||||||
|
//转发 截取
|
||||||
|
String path= str.substring(str.indexOf(Constants.FLAG)+1);
|
||||||
|
req.getRequestDispatcher(path).forward(req,resp);
|
||||||
|
}else if (str.startsWith(Constants.REDIRECT)){
|
||||||
|
//重定向
|
||||||
|
String path=str.substring(str.indexOf(Constants.FLAG)+1);
|
||||||
|
resp.sendRedirect(path);
|
||||||
|
}else{
|
||||||
|
//就是要返回一个字符串
|
||||||
|
resp.getWriter().println(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
//没有反射到方法
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// /user?method=""
|
||||||
|
//返回到首页的方法
|
||||||
|
/**
|
||||||
|
* 当method标识符"没有值"或者是空字符串时,我们默认赋index 访问每个Controller的index方法!
|
||||||
|
* 我们将方法提取到BaseServlet中即可!
|
||||||
|
* 默认处理:跳转到程序的首页!
|
||||||
|
* @param req
|
||||||
|
* @param resp
|
||||||
|
* @return
|
||||||
|
* @throws
|
||||||
|
* @throws ServletException
|
||||||
|
*/
|
||||||
|
public String index (HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
|
||||||
|
return Constants.FORWARD+"/index.jsp";
|
||||||
|
}
|
||||||
|
}
|
114
src/com/qf/controller/CartController.java
Normal file
114
src/com/qf/controller/CartController.java
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import com.qf.entity.Cart;
|
||||||
|
import com.qf.entity.User;
|
||||||
|
import com.qf.service.CartService;
|
||||||
|
import com.qf.service.impl.CartServiceImpl;
|
||||||
|
import com.qf.utils.Constants;
|
||||||
|
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@WebServlet("/cart")
|
||||||
|
|
||||||
|
public class CartController extends BaseServlet {
|
||||||
|
|
||||||
|
//加入购物车
|
||||||
|
public String create(HttpServletRequest request, HttpServletResponse response) throws SQLException, InvocationTargetException, IllegalAccessException {
|
||||||
|
|
||||||
|
//1.判断用户是否登录,没有登录跳转到登录页面
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
//获取session中的用户信息
|
||||||
|
User user = (User) session.getAttribute("loginUser");
|
||||||
|
if (user == null) {
|
||||||
|
session.setAttribute("msg", "添加购物车必须先登录!");
|
||||||
|
return Constants.FORWARD + "/login.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
//2.获取到对应的商品 id 和用户 id
|
||||||
|
int uid = user.getUid();
|
||||||
|
String pid = request.getParameter("pid");
|
||||||
|
|
||||||
|
//3.调用对应的业务逻辑
|
||||||
|
CartService cartService = new CartServiceImpl();
|
||||||
|
cartService.createCart(uid, pid);
|
||||||
|
|
||||||
|
|
||||||
|
//4.跳转到添加购物车成功页面
|
||||||
|
return Constants.FORWARD + "/cartSuccess.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
//查看购物车
|
||||||
|
public String show(HttpServletRequest request, HttpServletResponse response) throws SQLException, InvocationTargetException, IllegalAccessException {
|
||||||
|
//1.判断用户是否登录
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
//获取session中的用户信息
|
||||||
|
User user = (User) session.getAttribute("loginUser");
|
||||||
|
if (user == null) {
|
||||||
|
session.setAttribute("msg", "查看购物车必须先登录!");
|
||||||
|
return Constants.FORWARD + "/login.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
//2.获取请求参数
|
||||||
|
int uid = user.getUid();
|
||||||
|
|
||||||
|
//3.调用对应业务逻辑进行数据查询(查询当前客户购物车中信息)
|
||||||
|
CartService cartService = new CartServiceImpl();
|
||||||
|
//查询当前用户购物车中所有信息
|
||||||
|
List<Cart> list = cartService.findAll(uid);
|
||||||
|
|
||||||
|
//4.将获取到的信息转发到共享域中
|
||||||
|
request.setAttribute("list", list);
|
||||||
|
|
||||||
|
return Constants.FORWARD + "/cart.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
//购物车中删除物品
|
||||||
|
public String delete(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
|
||||||
|
//1.获取请求参数
|
||||||
|
String cid = request.getParameter("cid");
|
||||||
|
|
||||||
|
//2.调用对应的业务逻辑
|
||||||
|
CartService cartService = new CartServiceImpl();
|
||||||
|
cartService.deleteCartByCid(cid);
|
||||||
|
|
||||||
|
//3.转达到展示的处理方法中
|
||||||
|
return Constants.FORWARD + "/cart?method=show";
|
||||||
|
}
|
||||||
|
|
||||||
|
//购物车中数量更改
|
||||||
|
public String update(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
|
||||||
|
//1.获取请求参数 cid 商品单价price 商品修改后数量cnum
|
||||||
|
String cid = request.getParameter("cid");
|
||||||
|
String price = request.getParameter("price");
|
||||||
|
String cnum = request.getParameter("cnum");
|
||||||
|
|
||||||
|
//2.调用对应的业务逻辑
|
||||||
|
CartService cartService = new CartServiceImpl();
|
||||||
|
cartService.updateCartByCid(cid, price, cnum);
|
||||||
|
|
||||||
|
//3.转发到展示方法中
|
||||||
|
return Constants.FORWARD + "/cart?method=show";
|
||||||
|
}
|
||||||
|
|
||||||
|
//清空购物车
|
||||||
|
public String clear(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
|
||||||
|
//1.获取请求参数
|
||||||
|
String uid = request.getParameter("uid");
|
||||||
|
|
||||||
|
//2.调用对应的业务逻辑 清空购物车
|
||||||
|
CartService cartService = new CartServiceImpl();
|
||||||
|
cartService.clearCartByUid(uid);
|
||||||
|
|
||||||
|
//3.转发到展示方法中
|
||||||
|
return Constants.FORWARD + "/cart?method=show";
|
||||||
|
}
|
||||||
|
}
|
26
src/com/qf/controller/CodeController.java
Normal file
26
src/com/qf/controller/CodeController.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import cn.dsna.util.images.ValidateCode;
|
||||||
|
|
||||||
|
import javax.servlet.ServletOutputStream;
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@WebServlet("/code")
|
||||||
|
public class CodeController extends BaseServlet {
|
||||||
|
public void createCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
|
|
||||||
|
//1.生成验证码的对象
|
||||||
|
ValidateCode validateCode = new ValidateCode(100, 35, 4, 25);
|
||||||
|
//2.获取到对应的验证码
|
||||||
|
String code = validateCode.getCode();
|
||||||
|
//3.将获取到的验证码存到session中
|
||||||
|
request.getSession().setAttribute("code", code);
|
||||||
|
//4.创建出对应的字节文件对象
|
||||||
|
ServletOutputStream outputStream = response.getOutputStream();
|
||||||
|
//写回 表示验证码通过这个字节文件写回页面
|
||||||
|
validateCode.write(outputStream);
|
||||||
|
}
|
||||||
|
}
|
51
src/com/qf/controller/ProductController.java
Normal file
51
src/com/qf/controller/ProductController.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import com.qf.entity.PageBean;
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
import com.qf.service.ProductService;
|
||||||
|
import com.qf.service.impl.ProductServiceImpl;
|
||||||
|
import com.qf.utils.Constants;
|
||||||
|
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
@WebServlet("/product")
|
||||||
|
public class ProductController extends BaseServlet {
|
||||||
|
public String show(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
//1.获取请求参数
|
||||||
|
String tid = request.getParameter("tid");
|
||||||
|
//获取当前页和页容量
|
||||||
|
int pageSize = 8;
|
||||||
|
//当前页
|
||||||
|
String currentPage = request.getParameter("currentPage");
|
||||||
|
//默认值 1
|
||||||
|
int page = 1;
|
||||||
|
if (currentPage != null) {
|
||||||
|
page = Integer.parseInt(currentPage);
|
||||||
|
}
|
||||||
|
//2.调用业务逻辑
|
||||||
|
ProductService productService = new ProductServiceImpl();
|
||||||
|
PageBean<Product> pageBean = productService.findPage(tid, page, pageSize);
|
||||||
|
|
||||||
|
//3.响应
|
||||||
|
request.setAttribute("pageBean", pageBean);
|
||||||
|
return Constants.FORWARD + "/goodsList.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String detail(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
//1.获取请求参数
|
||||||
|
String pid = request.getParameter("pid");
|
||||||
|
//2.调用业务逻辑
|
||||||
|
ProductService productService = new ProductServiceImpl();
|
||||||
|
//3.声明方法
|
||||||
|
Product product = productService.findProductByPid(pid);
|
||||||
|
//3.响应
|
||||||
|
request.setAttribute("product",product);
|
||||||
|
//4.跳转到对应的商品页面
|
||||||
|
return Constants.FORWARD+"/goodsDetail.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
29
src/com/qf/controller/TypeController.java
Normal file
29
src/com/qf/controller/TypeController.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.qf.entity.Type;
|
||||||
|
import com.qf.service.TypeService;
|
||||||
|
import com.qf.service.impl.TypeServiceImpl;
|
||||||
|
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@WebServlet("/type")
|
||||||
|
public class TypeController extends BaseServlet {
|
||||||
|
public String findAll(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
//将查询到的数据转换成json的格式,传递给前端进行展示
|
||||||
|
|
||||||
|
//1.调用对象调用查询方法
|
||||||
|
TypeService typeService = new TypeServiceImpl();
|
||||||
|
List<Type> types = typeService.findAll();
|
||||||
|
|
||||||
|
//2.将集合转换为 json 数据
|
||||||
|
Gson gson = new Gson();
|
||||||
|
String json = gson.toJson(types);
|
||||||
|
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
}
|
118
src/com/qf/controller/UserController.java
Normal file
118
src/com/qf/controller/UserController.java
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
package com.qf.controller;
|
||||||
|
|
||||||
|
import com.qf.entity.User;
|
||||||
|
import com.qf.service.UserService;
|
||||||
|
import com.qf.service.impl.UserServiceImpl;
|
||||||
|
import com.qf.utils.Constants;
|
||||||
|
import com.qf.utils.MD5Utils;
|
||||||
|
import com.qf.utils.RandomUtils;
|
||||||
|
import org.apache.commons.beanutils.BeanUtils;
|
||||||
|
|
||||||
|
import javax.servlet.annotation.WebServlet;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@WebServlet("/user")
|
||||||
|
public class UserController extends BaseServlet {
|
||||||
|
|
||||||
|
//1.查询用户是否存在
|
||||||
|
public String check(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
//1.获取用户名
|
||||||
|
String username = request.getParameter("username");
|
||||||
|
if (username == null) {
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
//2.调用对应的业务逻辑判断用户名是否存在
|
||||||
|
UserService userService = new UserServiceImpl();
|
||||||
|
boolean b = userService.checkedUser(username);
|
||||||
|
//3.响应
|
||||||
|
if (b) {
|
||||||
|
//用户名存在
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
//2.注册功能
|
||||||
|
public String register(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
//1.获取到我们的用户信息
|
||||||
|
Map<String, String[]> parameterMap = request.getParameterMap();
|
||||||
|
//定义一个User
|
||||||
|
User user = new User();
|
||||||
|
|
||||||
|
try {
|
||||||
|
BeanUtils.populate(user, parameterMap);
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
//2.完善我们用户信息
|
||||||
|
user.setUstatus("0");
|
||||||
|
user.setUrole(0);
|
||||||
|
user.setCode(RandomUtils.createActive());
|
||||||
|
//对密码进行加密处理
|
||||||
|
user.setUpassword(MD5Utils.md5(user.getUpassword()));
|
||||||
|
//3.调用对应的业务逻辑进行注册
|
||||||
|
UserService userService = new UserServiceImpl();
|
||||||
|
|
||||||
|
try {
|
||||||
|
userService.registerUser(user);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.setAttribute("registerMsg", "注册失败!");
|
||||||
|
return Constants.FORWARD + "/register.jsp";
|
||||||
|
}
|
||||||
|
//4.响应
|
||||||
|
return Constants.FORWARD + "/registerSuccess.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
//3.登录功能
|
||||||
|
public String login(HttpServletRequest request, HttpServletResponse response) throws SQLException {
|
||||||
|
|
||||||
|
//1.获取请求参数
|
||||||
|
String username = request.getParameter("username");
|
||||||
|
String password = request.getParameter("password");
|
||||||
|
//用户输入的验证码
|
||||||
|
String code = request.getParameter("code");
|
||||||
|
|
||||||
|
//2.获取正确的验证码(在session中)
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
String codestr = (String) session.getAttribute("code");
|
||||||
|
|
||||||
|
//3.判断验证码是否正确(空或者不匹配)
|
||||||
|
if (code == null || !code.equalsIgnoreCase(codestr)) {
|
||||||
|
//错误提示
|
||||||
|
request.setAttribute("msg", "验证码错误!");
|
||||||
|
//将页面返回登录页面
|
||||||
|
return Constants.FORWARD + "login.jsp";
|
||||||
|
}
|
||||||
|
//4.调用业务逻辑判断账号密码是否正确(验证码正确的情况下)
|
||||||
|
UserService userService = new UserServiceImpl();
|
||||||
|
User user = userService.login(username, password);
|
||||||
|
//5.响应
|
||||||
|
if (user == null) {
|
||||||
|
//错误提示
|
||||||
|
request.setAttribute("msg", "用户名或密码错误!");
|
||||||
|
//将页面返回登录页面
|
||||||
|
return Constants.FORWARD + "login.jsp";
|
||||||
|
}
|
||||||
|
//6.进行登录
|
||||||
|
session.setAttribute("loginUser", user);
|
||||||
|
return Constants.FORWARD + "/index.jsp";
|
||||||
|
}
|
||||||
|
|
||||||
|
//4.注销登录
|
||||||
|
public String logOut(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
//1.清空session中的用户数据
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
session.removeAttribute("loginUser");
|
||||||
|
//2.提示注销并将页面转发到登录页面
|
||||||
|
request.setAttribute("msg", "注销登录成功!");
|
||||||
|
return Constants.FORWARD + "login.jsp";
|
||||||
|
}
|
||||||
|
}
|
4
src/com/qf/dao/AddressDao.java
Normal file
4
src/com/qf/dao/AddressDao.java
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
package com.qf.dao;
|
||||||
|
|
||||||
|
public interface AddressDao {
|
||||||
|
}
|
25
src/com/qf/dao/CartDao.java
Normal file
25
src/com/qf/dao/CartDao.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.qf.dao;
|
||||||
|
|
||||||
|
import com.qf.entity.Cart;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface CartDao {
|
||||||
|
|
||||||
|
Cart hasCart(int uid, String pid) throws SQLException, InvocationTargetException, IllegalAccessException;
|
||||||
|
|
||||||
|
void updateCart(Cart cart) throws SQLException;
|
||||||
|
|
||||||
|
void insertCart(Cart cart) throws SQLException;
|
||||||
|
|
||||||
|
List<Cart> selectCartByUid(int uid) throws SQLException, InvocationTargetException, IllegalAccessException;
|
||||||
|
|
||||||
|
void deleteCartByCid(String cid) throws SQLException;
|
||||||
|
|
||||||
|
void updateByCid(BigDecimal count, BigDecimal cnumbig, String cid) throws SQLException;
|
||||||
|
|
||||||
|
void clearCartByUid(String uid) throws SQLException;
|
||||||
|
}
|
14
src/com/qf/dao/ProductDao.java
Normal file
14
src/com/qf/dao/ProductDao.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package com.qf.dao;
|
||||||
|
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ProductDao {
|
||||||
|
long selectCountByTid(String tid) throws SQLException;
|
||||||
|
|
||||||
|
List<Product> selectProductByPage(int page, int pageSize, String tid) throws SQLException;
|
||||||
|
|
||||||
|
Product selectProductByPid(String pid) throws SQLException;
|
||||||
|
}
|
11
src/com/qf/dao/TypeDao.java
Normal file
11
src/com/qf/dao/TypeDao.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package com.qf.dao;
|
||||||
|
|
||||||
|
import com.qf.entity.Type;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface TypeDao {
|
||||||
|
//需要一个方法查询数据库类别表,返回Type
|
||||||
|
List<Type> selectAll() throws SQLException;
|
||||||
|
}
|
15
src/com/qf/dao/UserDao.java
Normal file
15
src/com/qf/dao/UserDao.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package com.qf.dao;
|
||||||
|
|
||||||
|
import com.qf.entity.User;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
//数据库访问接口
|
||||||
|
public interface UserDao {
|
||||||
|
//根据用户名查询用户是否存在
|
||||||
|
User selectUserByUname(String username) throws SQLException;
|
||||||
|
|
||||||
|
//保存数据的方法
|
||||||
|
int insertUser(User user) throws SQLException;
|
||||||
|
|
||||||
|
}
|
6
src/com/qf/dao/impl/AddressDaoImpl.java
Normal file
6
src/com/qf/dao/impl/AddressDaoImpl.java
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package com.qf.dao.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.AddressDao;
|
||||||
|
|
||||||
|
public class AddressDaoImpl implements AddressDao {
|
||||||
|
}
|
163
src/com/qf/dao/impl/CartDaoImpl.java
Normal file
163
src/com/qf/dao/impl/CartDaoImpl.java
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
package com.qf.dao.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.CartDao;
|
||||||
|
import com.qf.entity.Cart;
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
import com.qf.utils.C3P0Utils;
|
||||||
|
import org.apache.commons.beanutils.BeanUtils;
|
||||||
|
import org.apache.commons.dbutils.QueryRunner;
|
||||||
|
import org.apache.commons.dbutils.handlers.BeanHandler;
|
||||||
|
import org.apache.commons.dbutils.handlers.MapHandler;
|
||||||
|
import org.apache.commons.dbutils.handlers.MapListHandler;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CartDaoImpl implements CartDao {
|
||||||
|
@Override
|
||||||
|
public Cart hasCart(int uid, String pid) throws SQLException, InvocationTargetException, IllegalAccessException {
|
||||||
|
//cart-->product 间接查询,多表查询
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "select p.p_name as pname, p.p_id as pid, p.t_id as tid, " +
|
||||||
|
"p.p_time as ptime, p.p_image as piamge, p.p_state as pstate, " +
|
||||||
|
"p.p_info as pinfo, p.p_price as pprice, c.c_id as cid, " +
|
||||||
|
"c.u_id as uid, c.c_count as ccount, c.c_num as cnum " +
|
||||||
|
"from product p join cart c on p.p_id = c.p_id where c.u_id = ? and c.p_id = ?";
|
||||||
|
|
||||||
|
//3.执行sql语句
|
||||||
|
Map<String, Object> query = queryRunner.query(sql, new MapHandler(), uid, pid);
|
||||||
|
|
||||||
|
|
||||||
|
//4.判断并处理信息
|
||||||
|
if (query == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Product product = queryRunner.query(sql, new BeanHandler<Product>(Product.class), uid, pid);
|
||||||
|
// Cart cart = queryRunner.query(sql, new BeanHandler<Cart>(Cart.class), uid, pid);
|
||||||
|
Product product = new Product();
|
||||||
|
Cart cart = new Cart();
|
||||||
|
|
||||||
|
//通过工具类 BeanUtils 将对应 key 值的信息进行赋值
|
||||||
|
BeanUtils.populate(cart, query);
|
||||||
|
BeanUtils.populate(product, query);
|
||||||
|
|
||||||
|
cart.setProduct(product);
|
||||||
|
|
||||||
|
return cart;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateCart(Cart cart) throws SQLException {
|
||||||
|
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "update cart set c_num = ? , c_count = ? where c_id = ?;";
|
||||||
|
|
||||||
|
//3.执行sql
|
||||||
|
queryRunner.update(sql, cart.getCnum(), cart.getCcount(), cart.getCid());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertCart(Cart cart) throws SQLException {
|
||||||
|
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "insert into cart ( u_id , p_id , c_num , c_count ) value ( ? , ? , ? , ? );";
|
||||||
|
|
||||||
|
//3.执行sql
|
||||||
|
queryRunner.update(sql, cart.getUid(), cart.getPid(), cart.getCnum(), cart.getCcount());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Cart> selectCartByUid(int uid) throws SQLException, InvocationTargetException, IllegalAccessException {
|
||||||
|
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "select p.p_name as pname, p.p_id as pid, p.t_id as tid, " +
|
||||||
|
"p.p_time as ptime, p.p_image as piamge, p.p_state as pstate, " +
|
||||||
|
"p.p_info as pinfo, p.p_price as pprice, c.c_id as cid, " +
|
||||||
|
"c.u_id as uid, c.c_count as ccount, c.c_num as cnum " +
|
||||||
|
"from product p join cart c on p.p_id = c.p_id where c.u_id = ? ;";
|
||||||
|
|
||||||
|
//3.执行sql
|
||||||
|
List<Map<String, Object>> list = queryRunner.query(sql, new MapListHandler(), uid);
|
||||||
|
|
||||||
|
//判空
|
||||||
|
if (list == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//4.创建集合放购物车中对应的商品
|
||||||
|
List<Cart> carts = new ArrayList<>();
|
||||||
|
//for循环遍历存储信息
|
||||||
|
for (Map<String, Object> map : list) {
|
||||||
|
Product product = new Product();
|
||||||
|
Cart cart = new Cart();
|
||||||
|
|
||||||
|
//通过工具类 BeanUtils 将对应 key 值的信息进行赋值
|
||||||
|
BeanUtils.populate(cart, map);
|
||||||
|
BeanUtils.populate(product, map);
|
||||||
|
|
||||||
|
//手动将 product 关联到 Cart
|
||||||
|
cart.setProduct(product);
|
||||||
|
//添加数据到 carts
|
||||||
|
carts.add(cart);
|
||||||
|
}
|
||||||
|
|
||||||
|
return carts;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteCartByCid(String cid) throws SQLException {
|
||||||
|
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "delete from cart where c_id = ? ;";
|
||||||
|
|
||||||
|
//3.执行sql
|
||||||
|
queryRunner.update(sql, cid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateByCid(BigDecimal count, BigDecimal cnumbig, String cid) throws SQLException {
|
||||||
|
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "update cart set c_count = ? , c_num = ? where c_id = ? ;";
|
||||||
|
|
||||||
|
//3.执行sql
|
||||||
|
queryRunner.update(sql, count, cnumbig, cid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearCartByUid(String uid) throws SQLException {
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "delete from cart where u_id = ? ;";
|
||||||
|
|
||||||
|
//3.执行sql
|
||||||
|
queryRunner.update(sql, uid);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
61
src/com/qf/dao/impl/ProductDaoImpl.java
Normal file
61
src/com/qf/dao/impl/ProductDaoImpl.java
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package com.qf.dao.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.ProductDao;
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
import com.qf.utils.C3P0Utils;
|
||||||
|
import org.apache.commons.dbutils.QueryRunner;
|
||||||
|
import org.apache.commons.dbutils.handlers.BeanHandler;
|
||||||
|
import org.apache.commons.dbutils.handlers.BeanListHandler;
|
||||||
|
import org.apache.commons.dbutils.handlers.ScalarHandler;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ProductDaoImpl implements ProductDao {
|
||||||
|
@Override
|
||||||
|
public long selectCountByTid(String tid) throws SQLException {
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "select count(1) from product where t_id=?;";
|
||||||
|
|
||||||
|
Object result = queryRunner.query(sql, new ScalarHandler(), tid);
|
||||||
|
|
||||||
|
Long total = (Long) result;
|
||||||
|
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Product> selectProductByPage(int page, int pageSize, String tid) throws SQLException {
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "select p_id as pid ,t_id as tid ,p_name as pname ,p_time as ptime ," +
|
||||||
|
"p_image as pimage ,p_state as pstate ,p_info as pinfo ,p_price as pprice " +
|
||||||
|
"from product where t_id=? limit ?,?;";
|
||||||
|
|
||||||
|
//3.
|
||||||
|
List<Product> list = queryRunner.query(sql, new BeanListHandler<Product>(Product.class), tid, (page - 1) * pageSize, pageSize);
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Product selectProductByPid(String pid) throws SQLException {
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "select p_id as pid ,t_id as tid ,p_name as pname ,p_time as ptime ," +
|
||||||
|
"p_image as pimage ,p_state as pstate ,p_info as pinfo ,p_price as pprice " +
|
||||||
|
"from product where p_id=?;";
|
||||||
|
|
||||||
|
//3.
|
||||||
|
Product product = queryRunner.query(sql,new BeanHandler<Product>(Product.class),pid);
|
||||||
|
|
||||||
|
return product;
|
||||||
|
}
|
||||||
|
}
|
26
src/com/qf/dao/impl/TypeDaoImpl.java
Normal file
26
src/com/qf/dao/impl/TypeDaoImpl.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package com.qf.dao.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.TypeDao;
|
||||||
|
import com.qf.entity.Type;
|
||||||
|
import com.qf.utils.C3P0Utils;
|
||||||
|
import org.apache.commons.dbutils.QueryRunner;
|
||||||
|
import org.apache.commons.dbutils.handlers.BeanListHandler;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TypeDaoImpl implements TypeDao {
|
||||||
|
@Override
|
||||||
|
public List<Type> selectAll() throws SQLException {
|
||||||
|
//1.创建 QueryRunner对象
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql(limit 5)
|
||||||
|
String sql = "select t_id as tid ,t_name as tname ,t_info as tinfo from type limit 5;";
|
||||||
|
|
||||||
|
//3.执行sql语句
|
||||||
|
List<Type> list = queryRunner.query(sql, new BeanListHandler<Type>(Type.class));
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
41
src/com/qf/dao/impl/UserDaoImpl.java
Normal file
41
src/com/qf/dao/impl/UserDaoImpl.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package com.qf.dao.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.UserDao;
|
||||||
|
import com.qf.entity.User;
|
||||||
|
import com.qf.utils.C3P0Utils;
|
||||||
|
import org.apache.commons.dbutils.QueryRunner;
|
||||||
|
import org.apache.commons.dbutils.handlers.BeanHandler;
|
||||||
|
|
||||||
|
import javax.management.Query;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public class UserDaoImpl implements UserDao {
|
||||||
|
//根据用户名查询用户是否存在
|
||||||
|
@Override
|
||||||
|
public User selectUserByUname(String username) throws SQLException {
|
||||||
|
//1.创建一个QueryRunner 对象,传入我们对应的连接池
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
//2.编写sql语句完成查询操作
|
||||||
|
String sql = "select u_id as uid ,u_name as username , u_password as upassword ," +
|
||||||
|
"u_sex as usex ,u_status as ustatus ,u_code as code, u_email as email ," +
|
||||||
|
"u_role as urole from user where u_name=?;";
|
||||||
|
//3.执行sql
|
||||||
|
User user = queryRunner.query(sql, new BeanHandler<User>(User.class), username);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存数据的方法
|
||||||
|
@Override
|
||||||
|
public int insertUser(User user) throws SQLException {
|
||||||
|
//1.创建一个QueryRunner对象,传入我们对应的连接池
|
||||||
|
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
|
||||||
|
|
||||||
|
//2.编写sql
|
||||||
|
String sql = "insert into user(u_name ,u_password,u_sex,u_status, " +
|
||||||
|
"u_code ,u_email,u_role) value(?,?,?,?,?,?,?);";
|
||||||
|
//执行sql
|
||||||
|
int rows = queryRunner.update(sql, user.getUsername(), user.getUpassword(), user.getUsex(),
|
||||||
|
user.getUstatus(), user.getCode(), user.getEmail(), user.getUrole());
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
}
|
74
src/com/qf/entity/Address.java
Normal file
74
src/com/qf/entity/Address.java
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Address implements Serializable {
|
||||||
|
private static final long serialVersionUID =1L;
|
||||||
|
|
||||||
|
private int aid;
|
||||||
|
private int uid;
|
||||||
|
private String aname;
|
||||||
|
private String aphone;
|
||||||
|
private String adetail;
|
||||||
|
private int astate;
|
||||||
|
|
||||||
|
public int getAid() {
|
||||||
|
return aid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAid(int aid) {
|
||||||
|
this.aid = aid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(int uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAname() {
|
||||||
|
return aname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAname(String aname) {
|
||||||
|
this.aname = aname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAphone() {
|
||||||
|
return aphone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAphone(String aphone) {
|
||||||
|
this.aphone = aphone;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAdetail() {
|
||||||
|
return adetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdetail(String adetail) {
|
||||||
|
this.adetail = adetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAstate() {
|
||||||
|
return astate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAstate(int astate) {
|
||||||
|
this.astate = astate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Address{" +
|
||||||
|
"aid=" + aid +
|
||||||
|
", uid=" + uid +
|
||||||
|
", aname='" + aname + '\'' +
|
||||||
|
", aphone='" + aphone + '\'' +
|
||||||
|
", adetail='" + adetail + '\'' +
|
||||||
|
", astate=" + astate +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
84
src/com/qf/entity/Cart.java
Normal file
84
src/com/qf/entity/Cart.java
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库对应的购物车表
|
||||||
|
*/
|
||||||
|
public class Cart implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int cid;
|
||||||
|
private int uid;
|
||||||
|
private int pid;
|
||||||
|
private Product product;
|
||||||
|
private int cnum = 0; //购车商品数量
|
||||||
|
private BigDecimal ccount; //购物车小计
|
||||||
|
|
||||||
|
public Cart() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Product getProduct() {
|
||||||
|
return product;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProduct(Product product) {
|
||||||
|
this.product = product;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPid() {
|
||||||
|
return pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPid(int pid) {
|
||||||
|
this.pid = pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Cart{" +
|
||||||
|
"cid=" + cid +
|
||||||
|
", uid=" + uid +
|
||||||
|
", cnum=" + cnum +
|
||||||
|
", ccount=" + ccount +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCid() {
|
||||||
|
return cid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCid(int cid) {
|
||||||
|
this.cid = cid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(int uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCnum() {
|
||||||
|
return cnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCnum(int cnum) {
|
||||||
|
this.cnum = cnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCcount() {
|
||||||
|
|
||||||
|
BigDecimal pprice = product.getPprice();
|
||||||
|
BigDecimal bigDecimal = new BigDecimal(cnum);
|
||||||
|
|
||||||
|
return pprice.multiply(bigDecimal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCcount(BigDecimal ccount) {
|
||||||
|
this.ccount = ccount;
|
||||||
|
}
|
||||||
|
}
|
79
src/com/qf/entity/Item.java
Normal file
79
src/com/qf/entity/Item.java
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应数据库订单项
|
||||||
|
*/
|
||||||
|
public class Item implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int iid;
|
||||||
|
private String oid;
|
||||||
|
private int pid;
|
||||||
|
private Product product;
|
||||||
|
private BigDecimal icount;
|
||||||
|
private int inum;
|
||||||
|
|
||||||
|
|
||||||
|
public Product getProduct() {
|
||||||
|
return product;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProduct(Product product) {
|
||||||
|
this.product = product;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIid() {
|
||||||
|
return iid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIid(int iid) {
|
||||||
|
this.iid = iid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOid() {
|
||||||
|
return oid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOid(String oid) {
|
||||||
|
this.oid = oid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPid() {
|
||||||
|
return pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPid(int pid) {
|
||||||
|
this.pid = pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getIcount() {
|
||||||
|
return icount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIcount(BigDecimal icount) {
|
||||||
|
this.icount = icount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getInum() {
|
||||||
|
return inum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInum(int inum) {
|
||||||
|
this.inum = inum;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Item{" +
|
||||||
|
"iid=" + iid +
|
||||||
|
", oid='" + oid + '\'' +
|
||||||
|
", pid=" + pid +
|
||||||
|
", icount=" + icount +
|
||||||
|
", inum=" + inum +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
102
src/com/qf/entity/Orders.java
Normal file
102
src/com/qf/entity/Orders.java
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应数据库的订单表
|
||||||
|
*/
|
||||||
|
public class Orders implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String oid;
|
||||||
|
private int uid;
|
||||||
|
private int aid;
|
||||||
|
private Address address;
|
||||||
|
private BigDecimal ocount; //订单总金额
|
||||||
|
private Date otime;
|
||||||
|
private int ostate; //订单状态 0 未付款,1已经付款未发货 2发货待收货 3 收货待评价 4订单完成 5 退货状态
|
||||||
|
private List<Item> items;
|
||||||
|
|
||||||
|
public List<Item> getItems() {
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItems(List<Item> items) {
|
||||||
|
this.items = items;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Address getAddress() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddress(Address address) {
|
||||||
|
this.address = address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOid() {
|
||||||
|
return oid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOid(String oid) {
|
||||||
|
this.oid = oid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(int uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAid() {
|
||||||
|
return aid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAid(int aid) {
|
||||||
|
this.aid = aid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BigDecimal getOcount() {
|
||||||
|
return ocount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOcount(BigDecimal ocount) {
|
||||||
|
this.ocount = ocount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getOtime() {
|
||||||
|
return otime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOtime(Date otime) {
|
||||||
|
this.otime = otime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOstate() {
|
||||||
|
return ostate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOstate(int ostate) {
|
||||||
|
this.ostate = ostate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Orders{" +
|
||||||
|
"oid='" + oid + '\'' +
|
||||||
|
", uid=" + uid +
|
||||||
|
", aid=" + aid +
|
||||||
|
", ocount=" + ocount +
|
||||||
|
", otime=" + otime +
|
||||||
|
", ostate=" + ostate +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
64
src/com/qf/entity/PageBean.java
Normal file
64
src/com/qf/entity/PageBean.java
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//PageBean<T>加一个泛型T
|
||||||
|
public class PageBean<T> {
|
||||||
|
|
||||||
|
private List<T> list;//展示的数据
|
||||||
|
private int currentPage;//当前页数
|
||||||
|
private int pageSize;//页容量,每页显示的数据条数
|
||||||
|
private long totalCount; //总条数
|
||||||
|
private int totalPage; //总页数
|
||||||
|
|
||||||
|
//不传入总页数(构造方法)
|
||||||
|
public PageBean(List<T> list, int currentPage, int pageSize, long totalCount) {
|
||||||
|
this.list = list;
|
||||||
|
this.currentPage = currentPage;
|
||||||
|
this.pageSize = pageSize;
|
||||||
|
this.totalCount = totalCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
//添加get/set方法
|
||||||
|
public List<T> getList() {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(List<T> list) {
|
||||||
|
this.list = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCurrentPage() {
|
||||||
|
return currentPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrentPage(int currentPage) {
|
||||||
|
this.currentPage = currentPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPageSize() {
|
||||||
|
return pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageSize(int pageSize) {
|
||||||
|
this.pageSize = pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalCount() {
|
||||||
|
return totalCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalCount(long totalCount) {
|
||||||
|
this.totalCount = totalCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalPage() {
|
||||||
|
//需要进行一个运算
|
||||||
|
//13条数据 每页显示5 3(Math.ceil向下舍余)(totalCount*1.0转成double类型)
|
||||||
|
return (int) Math.ceil(totalCount*1.0/pageSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalPage(int totalPage) {
|
||||||
|
this.totalPage = totalPage;
|
||||||
|
}
|
||||||
|
}
|
100
src/com/qf/entity/Product.java
Normal file
100
src/com/qf/entity/Product.java
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应数据库的商品表
|
||||||
|
*/
|
||||||
|
public class Product implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int pid;
|
||||||
|
private int tid;
|
||||||
|
private String pname;
|
||||||
|
private Date ptime; //商品的上架时间! 数据库date --> java.util.Date
|
||||||
|
private String pimage; //商品的图片名称
|
||||||
|
private int pstate; //商品的热门指数
|
||||||
|
private String pinfo; //商品的描述
|
||||||
|
private BigDecimal pprice; //价格
|
||||||
|
|
||||||
|
public BigDecimal getPprice() {
|
||||||
|
return pprice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPprice(BigDecimal pprice) {
|
||||||
|
this.pprice = pprice;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPid() {
|
||||||
|
return pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPid(int pid) {
|
||||||
|
this.pid = pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTid() {
|
||||||
|
return tid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTid(int tid) {
|
||||||
|
this.tid = tid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPname() {
|
||||||
|
return pname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPname(String pname) {
|
||||||
|
this.pname = pname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getPtime() {
|
||||||
|
return ptime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPtime(Date ptime) {
|
||||||
|
this.ptime = ptime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPimage() {
|
||||||
|
return pimage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPimage(String pimage) {
|
||||||
|
this.pimage = pimage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPstate() {
|
||||||
|
return pstate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPstate(int pstate) {
|
||||||
|
this.pstate = pstate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPinfo() {
|
||||||
|
return pinfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPinfo(String pinfo) {
|
||||||
|
this.pinfo = pinfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Product{" +
|
||||||
|
"pid=" + pid +
|
||||||
|
", tid=" + tid +
|
||||||
|
", pname='" + pname + '\'' +
|
||||||
|
", ptime=" + ptime +
|
||||||
|
", pimage='" + pimage + '\'' +
|
||||||
|
", pstate=" + pstate +
|
||||||
|
", pinfo='" + pinfo + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
161
src/com/qf/entity/Result.java
Normal file
161
src/com/qf/entity/Result.java
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
public class Result {
|
||||||
|
private String appid;
|
||||||
|
private String bank_type;
|
||||||
|
private String cash_fee;
|
||||||
|
private String is_subscribe;
|
||||||
|
private String mch_id;
|
||||||
|
private String nonce_str;
|
||||||
|
private String openid;
|
||||||
|
private String out_trade_no;
|
||||||
|
private String result_code;//支付结果
|
||||||
|
private String return_code;
|
||||||
|
private String sign;
|
||||||
|
|
||||||
|
private String time_end;
|
||||||
|
private String total_fee;//总支付价格
|
||||||
|
private String trade_type;
|
||||||
|
private String transaction_id;
|
||||||
|
|
||||||
|
public String getAppid() {
|
||||||
|
return appid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppid(String appid) {
|
||||||
|
this.appid = appid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBank_type() {
|
||||||
|
return bank_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBank_type(String bank_type) {
|
||||||
|
this.bank_type = bank_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCash_fee() {
|
||||||
|
return cash_fee;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCash_fee(String cash_fee) {
|
||||||
|
this.cash_fee = cash_fee;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIs_subscribe() {
|
||||||
|
return is_subscribe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIs_subscribe(String is_subscribe) {
|
||||||
|
this.is_subscribe = is_subscribe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMch_id() {
|
||||||
|
return mch_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMch_id(String mch_id) {
|
||||||
|
this.mch_id = mch_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNonce_str() {
|
||||||
|
return nonce_str;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNonce_str(String nonce_str) {
|
||||||
|
this.nonce_str = nonce_str;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOpenid() {
|
||||||
|
return openid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOpenid(String openid) {
|
||||||
|
this.openid = openid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOut_trade_no() {
|
||||||
|
return out_trade_no;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOut_trade_no(String out_trade_no) {
|
||||||
|
this.out_trade_no = out_trade_no;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResult_code() {
|
||||||
|
return result_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResult_code(String result_code) {
|
||||||
|
this.result_code = result_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReturn_code() {
|
||||||
|
return return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReturn_code(String return_code) {
|
||||||
|
this.return_code = return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSign() {
|
||||||
|
return sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSign(String sign) {
|
||||||
|
this.sign = sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTime_end() {
|
||||||
|
return time_end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTime_end(String time_end) {
|
||||||
|
this.time_end = time_end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTotal_fee() {
|
||||||
|
return total_fee;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotal_fee(String total_fee) {
|
||||||
|
this.total_fee = total_fee;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTrade_type() {
|
||||||
|
return trade_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTrade_type(String trade_type) {
|
||||||
|
this.trade_type = trade_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransaction_id() {
|
||||||
|
return transaction_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransaction_id(String transaction_id) {
|
||||||
|
this.transaction_id = transaction_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Result(String appid, String bank_type, String cash_fee, String is_subscribe, String mch_id, String nonce_str,
|
||||||
|
String openid, String out_trade_no, String result_code, String return_code, String sign, String time_end,
|
||||||
|
String total_fee, String trade_type, String transaction_id) {
|
||||||
|
super();
|
||||||
|
this.appid = appid;
|
||||||
|
this.bank_type = bank_type;
|
||||||
|
this.cash_fee = cash_fee;
|
||||||
|
this.is_subscribe = is_subscribe;
|
||||||
|
this.mch_id = mch_id;
|
||||||
|
this.nonce_str = nonce_str;
|
||||||
|
this.openid = openid;
|
||||||
|
this.out_trade_no = out_trade_no;
|
||||||
|
this.result_code = result_code;
|
||||||
|
this.return_code = return_code;
|
||||||
|
this.sign = sign;
|
||||||
|
this.time_end = time_end;
|
||||||
|
this.total_fee = total_fee;
|
||||||
|
this.trade_type = trade_type;
|
||||||
|
this.transaction_id = transaction_id;
|
||||||
|
}
|
||||||
|
}
|
48
src/com/qf/entity/Type.java
Normal file
48
src/com/qf/entity/Type.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应的数据库的类别表
|
||||||
|
*/
|
||||||
|
public class Type implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int tid; // '类别的主键id',
|
||||||
|
private String tname; // '类别的名称',
|
||||||
|
private String tinfo; //'类别的描述',
|
||||||
|
|
||||||
|
public int getTid() {
|
||||||
|
return tid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTid(int tid) {
|
||||||
|
this.tid = tid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTname() {
|
||||||
|
return tname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTname(String tname) {
|
||||||
|
this.tname = tname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTinfo() {
|
||||||
|
return tinfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTinfo(String tinfo) {
|
||||||
|
this.tinfo = tinfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Type{" +
|
||||||
|
"tid=" + tid +
|
||||||
|
", tname='" + tname + '\'' +
|
||||||
|
", tinfo='" + tinfo + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
99
src/com/qf/entity/User.java
Normal file
99
src/com/qf/entity/User.java
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对应数据库的用户表
|
||||||
|
*/
|
||||||
|
public class User implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private int uid;
|
||||||
|
private String username; //对应的是数据库的uname字段
|
||||||
|
private String upassword; //密码
|
||||||
|
private String usex; //性别
|
||||||
|
private String ustatus; //用户的激活状态 0 未激活 1 激活
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
private String email; //对应的是数据库的uemail字段
|
||||||
|
private int urole; //用户 0 管理员 1
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(int uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUpassword() {
|
||||||
|
return upassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpassword(String upassword) {
|
||||||
|
this.upassword = upassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsex() {
|
||||||
|
return usex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsex(String usex) {
|
||||||
|
this.usex = usex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUstatus() {
|
||||||
|
return ustatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUstatus(String ustatus) {
|
||||||
|
this.ustatus = ustatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUrole() {
|
||||||
|
return urole;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrole(int urole) {
|
||||||
|
this.urole = urole;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "User{" +
|
||||||
|
"uid=" + uid +
|
||||||
|
", username='" + username + '\'' +
|
||||||
|
", upassword='" + upassword + '\'' +
|
||||||
|
", usex='" + usex + '\'' +
|
||||||
|
", ustatus='" + ustatus + '\'' +
|
||||||
|
", code='" + code + '\'' +
|
||||||
|
", email='" + email + '\'' +
|
||||||
|
", urole=" + urole +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
28
src/com/qf/entity/WeiXin.java
Normal file
28
src/com/qf/entity/WeiXin.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package com.qf.entity;
|
||||||
|
|
||||||
|
public class WeiXin {
|
||||||
|
|
||||||
|
private Result result;
|
||||||
|
private String type;
|
||||||
|
public Result getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
public void setResult(Result result) {
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
public WeiXin(Result result, String type) {
|
||||||
|
super();
|
||||||
|
this.result = result;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
public WeiXin() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
27
src/com/qf/filter/EncodingFilter.java
Normal file
27
src/com/qf/filter/EncodingFilter.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.qf.filter;
|
||||||
|
|
||||||
|
import javax.servlet.*;
|
||||||
|
import javax.servlet.annotation.WebFilter;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@WebFilter(urlPatterns = "/*")
|
||||||
|
public class EncodingFilter implements Filter {
|
||||||
|
@Override
|
||||||
|
public void init(FilterConfig filterConfig) throws ServletException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||||
|
//1.设置编码格式
|
||||||
|
servletRequest.setCharacterEncoding("utf-8");
|
||||||
|
servletResponse.setContentType("text/html;charset=utf-8");
|
||||||
|
//2放行
|
||||||
|
filterChain.doFilter(servletRequest, servletResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
4
src/com/qf/service/AddressService.java
Normal file
4
src/com/qf/service/AddressService.java
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
package com.qf.service;
|
||||||
|
|
||||||
|
public interface AddressService {
|
||||||
|
}
|
19
src/com/qf/service/CartService.java
Normal file
19
src/com/qf/service/CartService.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package com.qf.service;
|
||||||
|
|
||||||
|
import com.qf.entity.Cart;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface CartService {
|
||||||
|
void createCart(int uid, String pid) throws SQLException, InvocationTargetException, IllegalAccessException;
|
||||||
|
|
||||||
|
List<Cart> findAll(int uid) throws SQLException, InvocationTargetException, IllegalAccessException;
|
||||||
|
|
||||||
|
void deleteCartByCid(String cid) throws SQLException;
|
||||||
|
|
||||||
|
void updateCartByCid(String cid, String price, String cnum) throws SQLException;
|
||||||
|
|
||||||
|
void clearCartByUid(String uid) throws SQLException;
|
||||||
|
}
|
12
src/com/qf/service/ProductService.java
Normal file
12
src/com/qf/service/ProductService.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package com.qf.service;
|
||||||
|
|
||||||
|
import com.qf.entity.PageBean;
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public interface ProductService {
|
||||||
|
PageBean<Product> findPage(String tid, int page, int pageSize) throws SQLException;
|
||||||
|
|
||||||
|
Product findProductByPid(String pid) throws SQLException;
|
||||||
|
}
|
13
src/com/qf/service/TypeService.java
Normal file
13
src/com/qf/service/TypeService.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package com.qf.service;
|
||||||
|
|
||||||
|
import com.qf.entity.Type;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface TypeService {
|
||||||
|
|
||||||
|
//查询返回所有类别表中对应的type信息
|
||||||
|
List<Type> findAll() throws SQLException;
|
||||||
|
|
||||||
|
}
|
17
src/com/qf/service/UserService.java
Normal file
17
src/com/qf/service/UserService.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.qf.service;
|
||||||
|
|
||||||
|
import com.qf.entity.User;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public interface UserService {
|
||||||
|
|
||||||
|
//查询用户名是否存在
|
||||||
|
boolean checkedUser(String username) throws SQLException;
|
||||||
|
|
||||||
|
//注册业务逻辑
|
||||||
|
int registerUser(User user) throws SQLException;
|
||||||
|
|
||||||
|
//登录的业务逻辑
|
||||||
|
User login(String username, String password) throws SQLException;
|
||||||
|
}
|
6
src/com/qf/service/impl/AddressServiceImpl.java
Normal file
6
src/com/qf/service/impl/AddressServiceImpl.java
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package com.qf.service.impl;
|
||||||
|
|
||||||
|
import com.qf.service.AddressService;
|
||||||
|
|
||||||
|
public class AddressServiceImpl implements AddressService {
|
||||||
|
}
|
88
src/com/qf/service/impl/CartServiceImpl.java
Normal file
88
src/com/qf/service/impl/CartServiceImpl.java
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
package com.qf.service.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.CartDao;
|
||||||
|
import com.qf.dao.ProductDao;
|
||||||
|
import com.qf.dao.impl.CartDaoImpl;
|
||||||
|
import com.qf.dao.impl.ProductDaoImpl;
|
||||||
|
import com.qf.entity.Cart;
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
import com.qf.service.CartService;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CartServiceImpl implements CartService {
|
||||||
|
//1.向购物车中添加物品
|
||||||
|
@Override
|
||||||
|
public void createCart(int uid, String pid) throws SQLException, InvocationTargetException, IllegalAccessException {
|
||||||
|
//1.判断商品是否已经存在
|
||||||
|
CartDao cartDao = new CartDaoImpl();
|
||||||
|
Cart cart = cartDao.hasCart(uid, pid);
|
||||||
|
|
||||||
|
if (cart != null) {
|
||||||
|
//已存在该物品,修改数量
|
||||||
|
cart.setCnum(cart.getCnum() + 1);
|
||||||
|
cartDao.updateCart(cart);
|
||||||
|
} else {
|
||||||
|
//不存在该物品,添加该物品
|
||||||
|
ProductDao productDao = new ProductDaoImpl();
|
||||||
|
Product product = productDao.selectProductByPid(pid);
|
||||||
|
|
||||||
|
//完成添加
|
||||||
|
cart = new Cart();
|
||||||
|
cart.setCnum(1);
|
||||||
|
cart.setPid(Integer.parseInt(pid));
|
||||||
|
cart.setProduct(product);
|
||||||
|
cart.setUid(uid);
|
||||||
|
|
||||||
|
//完成插入操作
|
||||||
|
cartDao.insertCart(cart);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//2.根据uid查询所有商品
|
||||||
|
@Override
|
||||||
|
public List<Cart> findAll(int uid) throws SQLException, InvocationTargetException, IllegalAccessException {
|
||||||
|
|
||||||
|
CartDao cartDao = new CartDaoImpl();
|
||||||
|
//1.根据用户 id 查询对应购物车里面的商品
|
||||||
|
List<Cart> carts = cartDao.selectCartByUid(uid);
|
||||||
|
return carts;
|
||||||
|
}
|
||||||
|
|
||||||
|
//3.根据cid删除购物车中物品
|
||||||
|
@Override
|
||||||
|
public void deleteCartByCid(String cid) throws SQLException {
|
||||||
|
CartDao cartDao = new CartDaoImpl();
|
||||||
|
cartDao.deleteCartByCid(cid);
|
||||||
|
}
|
||||||
|
|
||||||
|
//4.购物车修改数量
|
||||||
|
@Override
|
||||||
|
public void updateCartByCid(String cid, String price, String cnum) throws SQLException {
|
||||||
|
|
||||||
|
//1.将对应的 cnum 和 price 转换成对应的大数据类型
|
||||||
|
BigDecimal cnumbig = new BigDecimal(cnum);
|
||||||
|
BigDecimal prciebig = new BigDecimal(price);
|
||||||
|
|
||||||
|
//2.进行小计计算
|
||||||
|
BigDecimal count = prciebig.multiply(cnumbig);
|
||||||
|
|
||||||
|
//3.数据库中修改
|
||||||
|
CartDao cartDao = new CartDaoImpl();
|
||||||
|
cartDao.updateByCid(count, cnumbig, cid);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//5.清空购物车
|
||||||
|
@Override
|
||||||
|
public void clearCartByUid(String uid) throws SQLException {
|
||||||
|
|
||||||
|
CartDao cartDao = new CartDaoImpl();
|
||||||
|
cartDao.clearCartByUid(uid);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
34
src/com/qf/service/impl/ProductServiceImpl.java
Normal file
34
src/com/qf/service/impl/ProductServiceImpl.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package com.qf.service.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.ProductDao;
|
||||||
|
import com.qf.dao.impl.ProductDaoImpl;
|
||||||
|
import com.qf.entity.PageBean;
|
||||||
|
import com.qf.entity.Product;
|
||||||
|
import com.qf.service.ProductService;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ProductServiceImpl implements ProductService {
|
||||||
|
@Override
|
||||||
|
public PageBean<Product> findPage(String tid, int page, int pageSize) throws SQLException {
|
||||||
|
ProductDao productDao = new ProductDaoImpl();
|
||||||
|
//1.查询有多少条数据
|
||||||
|
long count = productDao.selectCountByTid(tid);
|
||||||
|
|
||||||
|
//
|
||||||
|
List<Product> list = productDao.selectProductByPage(page, pageSize, tid);
|
||||||
|
|
||||||
|
return new PageBean<Product>(list, page, pageSize, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Product findProductByPid(String pid) throws SQLException {
|
||||||
|
//1.先到数据库中进行商品查询
|
||||||
|
ProductDao productDao = new ProductDaoImpl();
|
||||||
|
//2.定义一个productdao里面对应的方法,返回product
|
||||||
|
Product product = productDao.selectProductByPid(pid);
|
||||||
|
//3.返回product信息
|
||||||
|
return product;
|
||||||
|
}
|
||||||
|
}
|
20
src/com/qf/service/impl/TypeServiceImpl.java
Normal file
20
src/com/qf/service/impl/TypeServiceImpl.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.qf.service.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.TypeDao;
|
||||||
|
import com.qf.dao.impl.TypeDaoImpl;
|
||||||
|
import com.qf.entity.Type;
|
||||||
|
import com.qf.service.TypeService;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TypeServiceImpl implements TypeService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Type> findAll() throws SQLException {
|
||||||
|
//这里调用TypeDao接口(Dao层)
|
||||||
|
TypeDao typeDao = new TypeDaoImpl();
|
||||||
|
List<Type> types = typeDao.selectAll();
|
||||||
|
return types;
|
||||||
|
}
|
||||||
|
}
|
52
src/com/qf/service/impl/UserServiceImpl.java
Normal file
52
src/com/qf/service/impl/UserServiceImpl.java
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package com.qf.service.impl;
|
||||||
|
|
||||||
|
import com.qf.dao.UserDao;
|
||||||
|
import com.qf.dao.impl.UserDaoImpl;
|
||||||
|
import com.qf.entity.User;
|
||||||
|
import com.qf.service.UserService;
|
||||||
|
import com.qf.utils.MD5Utils;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public class UserServiceImpl implements UserService {
|
||||||
|
//查询用户名是否存在
|
||||||
|
@Override
|
||||||
|
public boolean checkedUser(String username) throws SQLException {
|
||||||
|
|
||||||
|
//根据dao访问对象
|
||||||
|
UserDao userDao = new UserDaoImpl();
|
||||||
|
User user = userDao.selectUserByUname(username);
|
||||||
|
|
||||||
|
//处理返回值
|
||||||
|
if (user != null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//没有查询到
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//注册业务逻辑
|
||||||
|
@Override
|
||||||
|
public int registerUser(User user) throws SQLException {
|
||||||
|
UserDao userDao = new UserDaoImpl();
|
||||||
|
int row = userDao.insertUser(user);
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
|
||||||
|
//登录的业务逻辑
|
||||||
|
@Override
|
||||||
|
public User login(String username, String password) throws SQLException {
|
||||||
|
//1.密码加密处理(数据库中密码已加密处理)便于比较
|
||||||
|
String md5password = MD5Utils.md5(password);
|
||||||
|
//2.根据用户名查询用户
|
||||||
|
UserDao userDao = new UserDaoImpl();
|
||||||
|
User user = userDao.selectUserByUname(username);
|
||||||
|
//3.账号密码对比(正确返回user)
|
||||||
|
if (user != null && user.getUpassword().equals(md5password)) {
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
//错误返回空 null
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
16
src/com/qf/utils/Base64Utils.java
Normal file
16
src/com/qf/utils/Base64Utils.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
|
//base64 加密 解密 激活邮件的时候 为 邮箱地址 code验证码 进行加密
|
||||||
|
//当 回传回来后 进行邮箱地址 和 code 的解密
|
||||||
|
public class Base64Utils {
|
||||||
|
//加密
|
||||||
|
public static String encode(String msg){
|
||||||
|
return Base64.getEncoder().encodeToString(msg.getBytes());
|
||||||
|
}
|
||||||
|
//解密
|
||||||
|
public static String decode(String msg){
|
||||||
|
return new String(Base64.getDecoder().decode(msg));
|
||||||
|
}
|
||||||
|
}
|
43
src/com/qf/utils/C3P0Utils.java
Normal file
43
src/com/qf/utils/C3P0Utils.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
import com.mchange.v2.c3p0.ComboPooledDataSource;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
public class C3P0Utils {
|
||||||
|
//获取数据源 C3P0配置文件信息 自动获取
|
||||||
|
private static DataSource ds = new ComboPooledDataSource();
|
||||||
|
//对外提供一个get方法 可以通过外部访问到DataSource
|
||||||
|
public static DataSource getDataSource(){
|
||||||
|
return ds;
|
||||||
|
}
|
||||||
|
//获取连接
|
||||||
|
public static Connection getConnection(){
|
||||||
|
try {
|
||||||
|
return ds.getConnection();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException("服务器繁忙....");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//释放资源
|
||||||
|
public static void release(ResultSet rs,Statement stmt,Connection conn){
|
||||||
|
try {
|
||||||
|
if(rs!=null){
|
||||||
|
rs.close();
|
||||||
|
}
|
||||||
|
if(stmt!=null){
|
||||||
|
stmt.close();
|
||||||
|
}
|
||||||
|
if(conn!=null){
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
src/com/qf/utils/Constants.java
Normal file
49
src/com/qf/utils/Constants.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目的常量类
|
||||||
|
*/
|
||||||
|
public class Constants {
|
||||||
|
//声明method标识
|
||||||
|
public static final String TAG = "method";
|
||||||
|
|
||||||
|
public static final String FORWARD = "forward:";
|
||||||
|
|
||||||
|
public static final String REDIRECT="redirect:";
|
||||||
|
|
||||||
|
public static final String FLAG=":";
|
||||||
|
|
||||||
|
public static final String INDEX="index";
|
||||||
|
|
||||||
|
/*
|
||||||
|
定义用户模块涉及的常量
|
||||||
|
*/
|
||||||
|
public static final String HAS_USER="1";
|
||||||
|
|
||||||
|
public static String NOT_HAS_USER = "0";
|
||||||
|
|
||||||
|
//用户的状态
|
||||||
|
public static final String USER_ACTIVE ="1";
|
||||||
|
|
||||||
|
public static final String USER_NOT_ACTIVE = "0";
|
||||||
|
|
||||||
|
//角色
|
||||||
|
public static final int ROLE_CUSTOMER = 0;//用户
|
||||||
|
|
||||||
|
public static final int ROLE_ADMIN= 1;//管理员
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户模块激活状态
|
||||||
|
*/
|
||||||
|
public static final int ACTIVE_FAIL= 0;
|
||||||
|
public static final int ACTIVE_SUCCESS= 1;
|
||||||
|
public static final int ACTIVE_ALREADY= 2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动登录cookie名
|
||||||
|
*/
|
||||||
|
public static final String AUTO_NAME="autoUser";
|
||||||
|
|
||||||
|
|
||||||
|
}
|
95
src/com/qf/utils/EmailUtils.java
Normal file
95
src/com/qf/utils/EmailUtils.java
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.qf.entity.User;
|
||||||
|
|
||||||
|
import javax.mail.MessagingException;
|
||||||
|
import javax.mail.Session;
|
||||||
|
import javax.mail.Transport;
|
||||||
|
import javax.mail.internet.InternetAddress;
|
||||||
|
import javax.mail.internet.MimeMessage;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.Inet4Address;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 1.首先需要获取发送邮件的Session对象
|
||||||
|
* Session session = Session.getDefaultInstance(Properties prop)
|
||||||
|
* 2.使用session对象 获取待发送的邮件信息
|
||||||
|
* MimeMessage mime = new MimeMessage(session)
|
||||||
|
* 3.设置发件人 收件人 标题 邮件内容 附件 发送时间等等
|
||||||
|
* 4.利用Transport 发送邮件
|
||||||
|
* */
|
||||||
|
public class EmailUtils {
|
||||||
|
public static void sendEmail(User user){
|
||||||
|
//发送方
|
||||||
|
String myAccount = "cqjava1701@163.com";
|
||||||
|
//授权码
|
||||||
|
String myPass = "cq1701";
|
||||||
|
//发件人 邮箱的 SMTP 服务器地址
|
||||||
|
String SMTPHost = "smtp.163.com";
|
||||||
|
//组成 properties
|
||||||
|
Properties prop = new Properties();
|
||||||
|
prop.setProperty("mail.transport.protocol", "smtp");//设置协议类型
|
||||||
|
prop.setProperty("mail.smtp.host", SMTPHost);//定义发件人的邮箱服务器地址
|
||||||
|
prop.setProperty("mail.smtp.auth", "true");//设置请求验证
|
||||||
|
//1.Session对象 创建会话 用于和邮箱服务器进行交互
|
||||||
|
Session session = Session.getDefaultInstance(prop);
|
||||||
|
//设置debug模式 可以查看详细发送信息 可略
|
||||||
|
session.setDebug(true);
|
||||||
|
|
||||||
|
//2.创建方法 用来组成一封完整的邮件
|
||||||
|
//参数 session(参数配置), myAccount 发送方 , user.getEmail() 接收方
|
||||||
|
MimeMessage message = createMsg(session,myAccount,user);
|
||||||
|
//4.利用Transport 发送邮件
|
||||||
|
try {
|
||||||
|
Transport tran = session.getTransport();
|
||||||
|
//连接服务器 确认发送方 是否授权
|
||||||
|
tran.connect(myAccount, myPass);
|
||||||
|
//发送邮件 将message 对象 传给 Transport 对象 将邮件发送出去
|
||||||
|
//参数1 要发的内容 参数2 要给哪些人发
|
||||||
|
//message.getAllRecipients() 获取到所有的收件人 | 抄送 | 密送
|
||||||
|
tran.sendMessage(message, message.getAllRecipients());
|
||||||
|
//关闭连接
|
||||||
|
tran.close();
|
||||||
|
} catch (MessagingException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MimeMessage createMsg(Session session, String myAccount, User user) {
|
||||||
|
//使用session对象 获取待发送的邮件信息
|
||||||
|
MimeMessage message = new MimeMessage(session);
|
||||||
|
//3.设置发件人 收件人 标题 邮件内容 附件 发送时间等等
|
||||||
|
try {
|
||||||
|
//3.1发件人 from
|
||||||
|
message.setFrom(new InternetAddress(myAccount, "小米", "utf-8"));
|
||||||
|
//3.2收件人 to 支持可以添加多个收件人 | 抄送 | 密送 如果想要发送给多个人 可以重复下面代码多次
|
||||||
|
/*
|
||||||
|
* MimeMessage.RecipientType.TO 发送
|
||||||
|
* MimeMessage.RecipientType.CC 抄送
|
||||||
|
* MimeMessage.RecipientType.BCC 密送
|
||||||
|
* */
|
||||||
|
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(user.getEmail(), user.getUsername(), "utf-8"));
|
||||||
|
//3.3生成邮件主题
|
||||||
|
message.setSubject("小米商城账号激活邮件","utf-8");
|
||||||
|
String ip = Inet4Address.getLocalHost().getHostAddress();
|
||||||
|
String url = "http://"+ip+":8080/activate?e="+ Base64Utils.encode(user.getEmail())+"&c="+Base64Utils.encode(user.getCode());
|
||||||
|
//设置邮件正文 setContent 可以使用html标签
|
||||||
|
message.setContent(user.getUsername()+",你好<br>欢迎注册小米商城! 请点击链接进行激活:<a href='"+url+"'>"+url+"</a>","text/html;charset=utf-8");
|
||||||
|
//设置邮件的发送时间 是立即发送
|
||||||
|
message.setSentDate(new Date());
|
||||||
|
//保存设置
|
||||||
|
message.saveChanges();
|
||||||
|
} catch (UnsupportedEncodingException | MessagingException | UnknownHostException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
}
|
24
src/com/qf/utils/MD5Utils.java
Normal file
24
src/com/qf/utils/MD5Utils.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
//MD5 生成器
|
||||||
|
public class MD5Utils {
|
||||||
|
public static String md5(String password){
|
||||||
|
//生成一个md5加密器
|
||||||
|
try {
|
||||||
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||||
|
//计算MD5 的值
|
||||||
|
md.update(password.getBytes());
|
||||||
|
//BigInteger 将8位的字符串 转成16位的字符串 得到的字符串形式是哈希码值
|
||||||
|
//BigInteger(参数1,参数2) 参数1 是 1为正数 0为0 -1为负数
|
||||||
|
return new BigInteger(1, md.digest()).toString(16);
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
214
src/com/qf/utils/PaymentUtil.java
Normal file
214
src/com/qf/utils/PaymentUtil.java
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class PaymentUtil {
|
||||||
|
|
||||||
|
private static String encodingCharset = "UTF-8";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成hmac方法
|
||||||
|
*
|
||||||
|
* @param p0_Cmd 业务类型
|
||||||
|
* @param p1_MerId 商户编号
|
||||||
|
* @param p2_Order 商户订单号
|
||||||
|
* @param p3_Amt 支付金额
|
||||||
|
* @param p4_Cur 交易币种
|
||||||
|
* @param p5_Pid 商品名称
|
||||||
|
* @param p6_Pcat 商品种类
|
||||||
|
* @param p7_Pdesc 商品描述
|
||||||
|
* @param p8_Url 商户接收支付成功数据的地址
|
||||||
|
* @param p9_SAF 送货地址
|
||||||
|
* @param pa_MP 商户扩展信息
|
||||||
|
* @param pd_FrpId 银行编码
|
||||||
|
* @param pr_NeedResponse 应答机制
|
||||||
|
* @param keyValue 商户密钥
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String buildHmac(String p0_Cmd,String p1_MerId,
|
||||||
|
String p2_Order, String p3_Amt, String p4_Cur,String p5_Pid, String p6_Pcat,
|
||||||
|
String p7_Pdesc,String p8_Url, String p9_SAF,String pa_MP,String pd_FrpId,
|
||||||
|
String pr_NeedResponse,String keyValue) {
|
||||||
|
StringBuilder sValue = new StringBuilder();
|
||||||
|
// 业务类型
|
||||||
|
sValue.append(p0_Cmd);
|
||||||
|
// 商户编号
|
||||||
|
sValue.append(p1_MerId);
|
||||||
|
// 商户订单号
|
||||||
|
sValue.append(p2_Order);
|
||||||
|
// 支付金额
|
||||||
|
sValue.append(p3_Amt);
|
||||||
|
// 交易币种
|
||||||
|
sValue.append(p4_Cur);
|
||||||
|
// 商品名称
|
||||||
|
sValue.append(p5_Pid);
|
||||||
|
// 商品种类
|
||||||
|
sValue.append(p6_Pcat);
|
||||||
|
// 商品描述
|
||||||
|
sValue.append(p7_Pdesc);
|
||||||
|
// 商户接收支付成功数据的地址
|
||||||
|
sValue.append(p8_Url);
|
||||||
|
// 送货地址
|
||||||
|
sValue.append(p9_SAF);
|
||||||
|
// 商户扩展信息
|
||||||
|
sValue.append(pa_MP);
|
||||||
|
// 银行编码
|
||||||
|
sValue.append(pd_FrpId);
|
||||||
|
// 应答机制
|
||||||
|
sValue.append(pr_NeedResponse);
|
||||||
|
|
||||||
|
return PaymentUtil.hmacSign(sValue.toString(), keyValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回校验hmac方法
|
||||||
|
*
|
||||||
|
* @param hmac 支付网关发来的加密验证码
|
||||||
|
* @param p1_MerId 商户编号
|
||||||
|
* @param r0_Cmd 业务类型
|
||||||
|
* @param r1_Code 支付结果
|
||||||
|
* @param r2_TrxId 易宝支付交易流水号
|
||||||
|
* @param r3_Amt 支付金额
|
||||||
|
* @param r4_Cur 交易币种
|
||||||
|
* @param r5_Pid 商品名称
|
||||||
|
* @param r6_Order 商户订单号
|
||||||
|
* @param r7_Uid 易宝支付会员ID
|
||||||
|
* @param r8_MP 商户扩展信息
|
||||||
|
* @param r9_BType 交易结果返回类型
|
||||||
|
* @param keyValue 密钥
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean verifyCallback(String hmac, String p1_MerId,
|
||||||
|
String r0_Cmd, String r1_Code, String r2_TrxId, String r3_Amt,
|
||||||
|
String r4_Cur, String r5_Pid, String r6_Order, String r7_Uid,
|
||||||
|
String r8_MP, String r9_BType, String keyValue) {
|
||||||
|
StringBuilder sValue = new StringBuilder();
|
||||||
|
// 商户编号
|
||||||
|
sValue.append(p1_MerId);
|
||||||
|
// 业务类型
|
||||||
|
sValue.append(r0_Cmd);
|
||||||
|
// 支付结果
|
||||||
|
sValue.append(r1_Code);
|
||||||
|
// 易宝支付交易流水号
|
||||||
|
sValue.append(r2_TrxId);
|
||||||
|
// 支付金额
|
||||||
|
sValue.append(r3_Amt);
|
||||||
|
// 交易币种
|
||||||
|
sValue.append(r4_Cur);
|
||||||
|
// 商品名称
|
||||||
|
sValue.append(r5_Pid);
|
||||||
|
// 商户订单号
|
||||||
|
sValue.append(r6_Order);
|
||||||
|
// 易宝支付会员ID
|
||||||
|
sValue.append(r7_Uid);
|
||||||
|
// 商户扩展信息
|
||||||
|
sValue.append(r8_MP);
|
||||||
|
// 交易结果返回类型
|
||||||
|
sValue.append(r9_BType);
|
||||||
|
String sNewString = PaymentUtil.hmacSign(sValue.toString(), keyValue);
|
||||||
|
return sNewString.equals(hmac);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param aValue
|
||||||
|
* @param aKey
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String hmacSign(String aValue, String aKey) {
|
||||||
|
byte k_ipad[] = new byte[64];
|
||||||
|
byte k_opad[] = new byte[64];
|
||||||
|
byte keyb[];
|
||||||
|
byte value[];
|
||||||
|
try {
|
||||||
|
keyb = aKey.getBytes(encodingCharset);
|
||||||
|
value = aValue.getBytes(encodingCharset);
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
keyb = aKey.getBytes();
|
||||||
|
value = aValue.getBytes();
|
||||||
|
}
|
||||||
|
|
||||||
|
Arrays.fill(k_ipad, keyb.length, 64, (byte) 54);
|
||||||
|
Arrays.fill(k_opad, keyb.length, 64, (byte) 92);
|
||||||
|
for (int i = 0; i < keyb.length; i++) {
|
||||||
|
k_ipad[i] = (byte) (keyb[i] ^ 0x36);
|
||||||
|
k_opad[i] = (byte) (keyb[i] ^ 0x5c);
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageDigest md = null;
|
||||||
|
try {
|
||||||
|
md = MessageDigest.getInstance("MD5");
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
md.update(k_ipad);
|
||||||
|
md.update(value);
|
||||||
|
byte dg[] = md.digest();
|
||||||
|
md.reset();
|
||||||
|
md.update(k_opad);
|
||||||
|
md.update(dg, 0, 16);
|
||||||
|
dg = md.digest();
|
||||||
|
return toHex(dg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String toHex(byte input[]) {
|
||||||
|
if (input == null)
|
||||||
|
return null;
|
||||||
|
StringBuffer output = new StringBuffer(input.length * 2);
|
||||||
|
for (int i = 0; i < input.length; i++) {
|
||||||
|
int current = input[i] & 0xff;
|
||||||
|
if (current < 16)
|
||||||
|
output.append("0");
|
||||||
|
output.append(Integer.toString(current, 16));
|
||||||
|
}
|
||||||
|
|
||||||
|
return output.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param args
|
||||||
|
* @param key
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getHmac(String[] args, String key) {
|
||||||
|
if (args == null || args.length == 0) {
|
||||||
|
return (null);
|
||||||
|
}
|
||||||
|
StringBuffer str = new StringBuffer();
|
||||||
|
for (int i = 0; i < args.length; i++) {
|
||||||
|
str.append(args[i]);
|
||||||
|
}
|
||||||
|
return (hmacSign(str.toString(), key));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param aValue
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String digest(String aValue) {
|
||||||
|
aValue = aValue.trim();
|
||||||
|
byte value[];
|
||||||
|
try {
|
||||||
|
value = aValue.getBytes(encodingCharset);
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
value = aValue.getBytes();
|
||||||
|
}
|
||||||
|
MessageDigest md = null;
|
||||||
|
try {
|
||||||
|
md = MessageDigest.getInstance("SHA");
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return toHex(md.digest(value));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// public static void main(String[] args) {
|
||||||
|
// System.out.println(hmacSign("AnnulCard1000043252120080620160450.0http://localhost/SZXpro/callback.asp杩?4564868265473632445648682654736324511","8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t"));
|
||||||
|
// }
|
||||||
|
}
|
21
src/com/qf/utils/RandomUtils.java
Normal file
21
src/com/qf/utils/RandomUtils.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
//生成邮箱验证 激活码 使用的随机数
|
||||||
|
public class RandomUtils {
|
||||||
|
//当前时间 + 随机数
|
||||||
|
public static String createActive(){
|
||||||
|
|
||||||
|
return getTime()+Integer.toHexString(new Random().nextInt(900)+100);
|
||||||
|
}
|
||||||
|
public static String getTime(){
|
||||||
|
return new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime());
|
||||||
|
}
|
||||||
|
//生成订单编号
|
||||||
|
public static String createOrderId(){
|
||||||
|
return getTime();
|
||||||
|
}
|
||||||
|
}
|
17
src/com/qf/utils/StrUtils.java
Normal file
17
src/com/qf/utils/StrUtils.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.qf.utils;
|
||||||
|
//字符串工具类 判定字符串是否为空
|
||||||
|
public class StrUtils {
|
||||||
|
public static boolean empty(String msg){
|
||||||
|
return msg!=null && msg.length()>0;
|
||||||
|
}
|
||||||
|
public static boolean empty(String...msg){
|
||||||
|
boolean res = true;
|
||||||
|
for(String s:msg){
|
||||||
|
res = (s!=null && s.length()>0);
|
||||||
|
if(!res){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
BIN
web/WEB-INF/lib/ValidateCode.jar
Normal file
BIN
web/WEB-INF/lib/ValidateCode.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/c3p0-0.9.1.2.jar
Normal file
BIN
web/WEB-INF/lib/c3p0-0.9.1.2.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/commons-beanutils-1.8.3.jar
Normal file
BIN
web/WEB-INF/lib/commons-beanutils-1.8.3.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/commons-dbutils-1.7.jar
Normal file
BIN
web/WEB-INF/lib/commons-dbutils-1.7.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/commons-fileupload-1.2.2.jar
Normal file
BIN
web/WEB-INF/lib/commons-fileupload-1.2.2.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/commons-io-2.2.jar
Normal file
BIN
web/WEB-INF/lib/commons-io-2.2.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/commons-logging-1.1.1.jar
Normal file
BIN
web/WEB-INF/lib/commons-logging-1.1.1.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/gson-2.2.1.jar
Normal file
BIN
web/WEB-INF/lib/gson-2.2.1.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/jstl.jar
Normal file
BIN
web/WEB-INF/lib/jstl.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/mail.jar
Normal file
BIN
web/WEB-INF/lib/mail.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/mysql-connector-java-5.0.8-bin.jar
Normal file
BIN
web/WEB-INF/lib/mysql-connector-java-5.0.8-bin.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/servlet-api.jar
Normal file
BIN
web/WEB-INF/lib/servlet-api.jar
Normal file
Binary file not shown.
BIN
web/WEB-INF/lib/standard.jar
Normal file
BIN
web/WEB-INF/lib/standard.jar
Normal file
Binary file not shown.
6
web/WEB-INF/web.xml
Normal file
6
web/WEB-INF/web.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
|
||||||
|
version="4.0">
|
||||||
|
</web-app>
|
74
web/admin/addGoods.jsp
Normal file
74
web/admin/addGoods.jsp
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" />
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<script src="../js/DatePicker.js"></script>
|
||||||
|
<title>商品添加页面</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="row" style="margin-left: 20px;">
|
||||||
|
<form action="${pageContext.request.contextPath }/addGoods" method="post" enctype="multipart/form-data">
|
||||||
|
<div>
|
||||||
|
<h3>新增商品</h3>
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label>名称:</label>
|
||||||
|
<input type="text" name="name" class="form-control" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label>分类:</label>
|
||||||
|
<select name="typeid" class="form-control">
|
||||||
|
<option value="0">------</option>
|
||||||
|
<option value="1">电脑</option>
|
||||||
|
<option value="2">笔记本</option>
|
||||||
|
<option value="3">平板</option>
|
||||||
|
<option value="7">小米手机</option>
|
||||||
|
<option value="8">红米</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label>时间:</label>
|
||||||
|
<input type="text" name="pubdate" readonly="readonly" class="form-control" onclick="setday(this)" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label>价格:</label>
|
||||||
|
<input type="text" name="price" class="form-control" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label>评分:</label>
|
||||||
|
<input type="text" name="star" class="form-control" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label>商品图片</label>
|
||||||
|
<input type="file" name="picture" />
|
||||||
|
</div>
|
||||||
|
<div class="form-group ">
|
||||||
|
<label>商品简介</label>
|
||||||
|
<textarea name="intro" class="form-control" rows="5"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<input type="submit" value="添加" class="btn btn-primary" />
|
||||||
|
<input type="reset" value="重置" class="btn btn-default" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
55
web/admin/addGoodsType.jsp
Normal file
55
web/admin/addGoodsType.jsp
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" />
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<title>添加商品种类</title>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="width:98%;margin-left: 1%;">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
添加商品种类
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<form action="${pageContext.request.contextPath }/addGoodsType" method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>所属种类</span>
|
||||||
|
<select name="goodsParent">
|
||||||
|
<option value="1">--请选择--</option>
|
||||||
|
<c:forEach items="${goodsTypeList }" var="type">
|
||||||
|
<c:if test="${type.level <=2}">
|
||||||
|
<option value="${type.id }">${type.name }</option>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>种类名称</span>
|
||||||
|
<input type="text" name="typename" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="reset" class="btn btn-default">清空</button>
|
||||||
|
<button type="submit" class="btn btn-default">添加</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
155
web/admin/admin.jsp
Normal file
155
web/admin/admin.jsp
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8"
|
||||||
|
pageEncoding="utf-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<title>后台首页</title>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link href="../css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<title>后台主页面</title>
|
||||||
|
<style>
|
||||||
|
@media ( min-width :768px ) {
|
||||||
|
#left_tab {
|
||||||
|
width: 250px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
height: 640px;
|
||||||
|
}
|
||||||
|
.mysearch {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
.page_main {
|
||||||
|
margin-left: 255px;
|
||||||
|
}
|
||||||
|
.dv_content{
|
||||||
|
width: 100%;
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<c:if test="${admin==null }">
|
||||||
|
<c:redirect url="login.jsp"></c:redirect>
|
||||||
|
</c:if>
|
||||||
|
<!--导航 -->
|
||||||
|
<div style="width: 80%;margin-left: 10%;">
|
||||||
|
<nav class="navbar navbar-default navbar-static-top">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#left_tab,#top_right">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a href="#" class="navbar-brand">网站后台管理</a>
|
||||||
|
</div>
|
||||||
|
<ul id="top_right" class="collapse navbar-collapse nav navbar-nav navbar-right" style="margin-right: 20px;">
|
||||||
|
<li>
|
||||||
|
<a href="#">
|
||||||
|
<span class="badge" style="background-color: red;">23</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#">
|
||||||
|
<span class="glyphicon glyphicon-off"></span>注销
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<!--左侧边栏 -->
|
||||||
|
<div id="left_tab" style="margin-top: 70px;" class="collapse navbar-default navbar-collapse">
|
||||||
|
<ul class="nav panel-group" id="myPanel">
|
||||||
|
<!--栏目-->
|
||||||
|
<li class="panel">
|
||||||
|
<a href="#sub1" data-toggle="collapse" data-parent="#myPanel"> 用户管理
|
||||||
|
<span class="glyphicon glyphicon-triangle-bottom pull-right"></span>
|
||||||
|
</a>
|
||||||
|
<ul id="sub1" class="nav collapse panel-collapse">
|
||||||
|
<li>
|
||||||
|
<a href="#" id="showUser">
|
||||||
|
<span class="glyphicon glyphicon-user"></span> <b>会员管理</b>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" id="invalid"><!-- 无效会员 -->
|
||||||
|
<span class="glyphicon glyphicon-user"></span> <b>无效会员管理</b>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="panel">
|
||||||
|
<a href="#sub3" data-toggle="collapse" data-parent="#myPanel"> 商品管理
|
||||||
|
<span class="glyphicon glyphicon-triangle-bottom pull-right"></span>
|
||||||
|
</a>
|
||||||
|
<ul id="sub3" class="nav panel-collapse collapse">
|
||||||
|
<li>
|
||||||
|
<a href="#" id="showGoodsType">
|
||||||
|
<span class="glyphicon glyphicon-record"></span> 查看商品分类
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" id="addGoodsType">
|
||||||
|
<span class="glyphicon glyphicon-plus"></span> 添加商品分类
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" id="showGoods" >
|
||||||
|
<span class="glyphicon glyphicon-record"></span> 查看商品
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#" id="addGoods">
|
||||||
|
<span class="glyphicon glyphicon-plus"></span> 添加商品
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="panel">
|
||||||
|
<a href="#sub2" data-toggle="collapse" data-parent="#myPanel"> 订单管理
|
||||||
|
<span class="glyphicon glyphicon-triangle-bottom pull-right"></span>
|
||||||
|
</a>
|
||||||
|
<ul id="sub2" class="nav panel-collapse collapse">
|
||||||
|
<li>
|
||||||
|
<a href="#" id="showOrder">
|
||||||
|
<span class="glyphicon glyphicon-record"></span> 查看订单
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!--右侧部分-->
|
||||||
|
<div class="page_main">
|
||||||
|
<script type="text/javascript">
|
||||||
|
$("#showUser").click(function(){
|
||||||
|
$(".dv_content").attr("src","userList.jsp");
|
||||||
|
})
|
||||||
|
$("#showGoodsType").click(function(){
|
||||||
|
$(".dv_content").attr("src","${pageContext.request.contextPath}/getGoodsType?flag=show");
|
||||||
|
})
|
||||||
|
$("#addGoodsType").click(function(){
|
||||||
|
$(".dv_content").attr("src","${pageContext.request.contextPath}/getGoodsType?flag=add");
|
||||||
|
})
|
||||||
|
$("#showGoods").click(function(){
|
||||||
|
$(".dv_content").attr("src","${pageContext.request.contextPath}/getGoodsList");
|
||||||
|
})
|
||||||
|
$("#addGoods").click(function(){
|
||||||
|
$(".dv_content").attr("src","addGoods.jsp");
|
||||||
|
})
|
||||||
|
$("#showOrder").click(function(){
|
||||||
|
$(".dv_content").attr("src","${pageContext.request.contextPath}/getAllOrder");
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<iframe class="dv_content" frameborder="0" scrolling="no">
|
||||||
|
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
31
web/admin/invalidUser.jsp
Normal file
31
web/admin/invalidUser.jsp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" />
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<title>无效会员管理</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="row" style="width:98%;margin-left: 1%;margin-top: 5px;">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
已停用会员列表
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<table id="tb_list" class="table table-striped table-hover table-bordered">
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
72
web/admin/login.jsp
Normal file
72
web/admin/login.jsp
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
|
||||||
|
<!-- Bootstrap -->
|
||||||
|
<link href="../css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<title>登录</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
$("#eye").click(function(){
|
||||||
|
if($("#password").attr("type")=="password"){
|
||||||
|
$("#password").attr("type","text");
|
||||||
|
$("#eye").attr("class","glyphicon glyphicon-eye-close");
|
||||||
|
}else{
|
||||||
|
$("#password").attr("type","password");
|
||||||
|
$("#eye").attr("class","glyphicon glyphicon-eye-open");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style type="text/css">
|
||||||
|
#main{
|
||||||
|
position: absolute;
|
||||||
|
width: 400px;
|
||||||
|
height: 300px;
|
||||||
|
left:50%;
|
||||||
|
top:40%;
|
||||||
|
margin-left: -200px;
|
||||||
|
margin-top: -100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="main" class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<div class="panel-title">
|
||||||
|
后台登录
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div style="text-align: center;">
|
||||||
|
<img src="../image/mistore_logo.png" alt="logo" width="30%" height="30%" />
|
||||||
|
</div>
|
||||||
|
<form action="${pageContext.request.contextPath }/adminLogin" method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<label>用户名:</label>
|
||||||
|
<input type="text" name="username" id="" class="form-control" placeholder="请输入用户名"/>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>密 码:</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="password" name="password" id="password" class="form-control" placeholder="请输入密码"/>
|
||||||
|
<span class="input-group-addon">
|
||||||
|
<span class="glyphicon glyphicon-eye-open" id="eye"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" style="text-align: center;">
|
||||||
|
<input type="submit" value="登录" class="btn btn-primary">
|
||||||
|
<input type="reset" value="重置" class="btn btn-default">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
104
web/admin/showAllOrder.jsp
Normal file
104
web/admin/showAllOrder.jsp
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8"
|
||||||
|
pageEncoding="utf-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<title>后台 订单列表</title>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css">
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function sendOrder(id){
|
||||||
|
location.href = "${pageContext.request.contextPath}/sendOrder?oid="+id;
|
||||||
|
}
|
||||||
|
$(function(){
|
||||||
|
$("#search").click(function(){
|
||||||
|
var username = $("input[name='username']").val();
|
||||||
|
var status = $("select[name='orderStatus'] option:selected").val();
|
||||||
|
location.href="${pageContext.request.contextPath}/searchOrder?username="+username+"&status="+status;
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="row" style="width:98%;margin-left: 1%;margin-top: 5px;">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
订单列表
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>用户姓名</span>
|
||||||
|
<input type="text" name="username" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>订单状态</span>
|
||||||
|
<select name="orderStatus" class="form-control">
|
||||||
|
<option value=" ">----------</option>
|
||||||
|
<option value="1">未支付</option>
|
||||||
|
<option value="2">已支付,待发货</option>
|
||||||
|
<option value="3">已发货,待收货</option>
|
||||||
|
<option value="4">完成订单</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">
|
||||||
|
<button type="button" class="btn btn-primary" id="search"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table id="tb_list" class="table table-striped table-hover table-bordered table-condensed">
|
||||||
|
<tr>
|
||||||
|
<td>序号</td>
|
||||||
|
<td>订单编号</td>
|
||||||
|
<td>总金额</td>
|
||||||
|
<td>订单状态</td>
|
||||||
|
<td>订单时间</td>
|
||||||
|
<td>用户姓名</td>
|
||||||
|
<td>操作</td>
|
||||||
|
</tr>
|
||||||
|
<c:forEach items="${orderList}" var="order" varStatus="i">
|
||||||
|
<tr>
|
||||||
|
<td>${i.count}</td>
|
||||||
|
<td>${order.id}</td>
|
||||||
|
<td>${order.money}</td>
|
||||||
|
<td>
|
||||||
|
<c:if test="${order.status eq 1}">
|
||||||
|
未支付
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${order.status eq 2}">
|
||||||
|
已支付,待发货
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${order.status eq 3}">
|
||||||
|
已发货,待收货
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${order.status eq 4}">
|
||||||
|
订单完成
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
<td>${order.time}</td>
|
||||||
|
<td>${order.username}</td>
|
||||||
|
<td>
|
||||||
|
<c:if test="${order.status eq 2}">
|
||||||
|
<button type="button" class="btn btn-danger btn-sm" onclick="sendOrder('${order.id}')">发货</button>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
76
web/admin/showGoods.jsp
Normal file
76
web/admin/showGoods.jsp
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" />
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<script src="../js/DatePicker.js"></script>
|
||||||
|
<title>商品列表</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="row" style="width:98%;margin-left: 1%;">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
会员列表
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>商品名称</span>
|
||||||
|
<input type="text" name="name" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>上架时间</span>
|
||||||
|
<input type="text" readonly="readonly" name="pubdate" class="form-control" onclick="setday(this)">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">
|
||||||
|
<button type="button" class="btn btn-primary" id="search"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="height: 400px;overflow: scroll;">
|
||||||
|
<table id="tb_list" class="table table-striped table-hover table-bordered">
|
||||||
|
<tr>
|
||||||
|
<td>序号</td><td>商品名称</td><td>价格</td><td>上架时间</td><td>类型</td><td>操作</td>
|
||||||
|
</tr>
|
||||||
|
<c:forEach items="${goodsList}" var="goods" varStatus="i">
|
||||||
|
<tr>
|
||||||
|
<td>${i.count}</td>
|
||||||
|
<td>${goods.name}</td>
|
||||||
|
<td>${goods.price}</td>
|
||||||
|
<td>${goods.pubdate}</td>
|
||||||
|
<td>${goods.typeName}</td>
|
||||||
|
<td>删除 修改
|
||||||
|
<a tabindex="0" id="example${goods.id}" class="btn btn-primary btn-xs"
|
||||||
|
role="button" data-toggle="popover"
|
||||||
|
data-trigger="focus"
|
||||||
|
data-placement="left"
|
||||||
|
data-content="${goods.intro}">描述</a>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function(){
|
||||||
|
$("#example${goods.id}").popover();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
66
web/admin/showGoodsType.jsp
Normal file
66
web/admin/showGoodsType.jsp
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../css/bootstrap.min.css" />
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
|
||||||
|
<title>商品分类</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="row" style="width:98%;margin-left: 1%;">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
商品类型
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>商品等级</span>
|
||||||
|
<input type="text" name="username" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>商品名称</span>
|
||||||
|
<input type="text" name="pubdate" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">
|
||||||
|
<button type="button" class="btn btn-primary" id="search"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="height: 400px;overflow: scroll;">
|
||||||
|
<table id="tb_list" class="table table-striped table-hover table-bordered">
|
||||||
|
<tr>
|
||||||
|
<td>序号</td><td>类型</td><td>等级</td><td>所属类型</td><td>操作</td>
|
||||||
|
</tr>
|
||||||
|
<c:forEach items="${goodsTypeList}" var="gtype" varStatus="i">
|
||||||
|
<tr>
|
||||||
|
<td>${i.count}</td>
|
||||||
|
<td>${gtype.name}</td>
|
||||||
|
<td>${gtype.level}</td>
|
||||||
|
<td>${gtype.parentName}</td>
|
||||||
|
<td>
|
||||||
|
<button>修改</button>
|
||||||
|
<button>删除</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
147
web/admin/userList.jsp
Normal file
147
web/admin/userList.jsp
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<%@page import="java.util.List"%>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>小米网后台主页-会员信息页面</title>
|
||||||
|
<link href="../css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script src="../js/jquery.min.js"></script>
|
||||||
|
<script src="../js/bootstrap.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function(){
|
||||||
|
loadUser();
|
||||||
|
})
|
||||||
|
//连接servlet 获取 数据
|
||||||
|
function loadUser(){
|
||||||
|
$.ajax({
|
||||||
|
url:"${pageContext.request.contextPath}/getUserList",
|
||||||
|
method:"get",
|
||||||
|
success:function(data){
|
||||||
|
showMsg(data);
|
||||||
|
},
|
||||||
|
error:function(XMLHttpRequest,textStatus,errorThrown){
|
||||||
|
alert("失败"+XMLHttpRequest.status+":"+textStatus+":"+errorThrown);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//显示用户信息
|
||||||
|
function showMsg(data){
|
||||||
|
var list = JSON.parse(data);
|
||||||
|
$("#tb_list").html("<tr class='tr_head'><td>编号</td><td>邮箱</td><td>姓名</td><td>性别</td><td>类别</td><td>操作</td></tr>");
|
||||||
|
var i = 1;
|
||||||
|
for(var u in list){
|
||||||
|
//声明 tr td 对象
|
||||||
|
var tr = $("<tr></tr>");
|
||||||
|
var td1 = $("<td>"+(i++)+"</td>");
|
||||||
|
var td2 = $("<td>"+list[u].email+"</td>");
|
||||||
|
var td3 = $("<td>"+list[u].username+"</td>");
|
||||||
|
var td4 = $("<td>"+list[u].gender+"</td>");
|
||||||
|
var td5 = $("<td>"+(list[u].role==0?"管理员":"会员")+"</td>");
|
||||||
|
var td6 = $("<td><a href='javascript:delUser("+list[u].id+")' class='btn btn-primary btn-xs'>删除</a></td>");
|
||||||
|
|
||||||
|
//将td 添加到tr中
|
||||||
|
tr.append(td1);
|
||||||
|
tr.append(td2);
|
||||||
|
tr.append(td3);
|
||||||
|
tr.append(td4);
|
||||||
|
tr.append(td5);
|
||||||
|
tr.append(td6);
|
||||||
|
$("#tb_list").append(tr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//删除用户
|
||||||
|
function delUser(id){
|
||||||
|
if(confirm("确认要删除吗?")){
|
||||||
|
$.ajax({
|
||||||
|
url:"${pageContext.request.contextPath}/deleteUser?id="+id,
|
||||||
|
method:"get",
|
||||||
|
success:function(data){
|
||||||
|
loadUser();
|
||||||
|
},
|
||||||
|
error:function(XMLHttpRequest,textStatus,errorThrown){
|
||||||
|
alert("失败"+XMLHttpRequest.status+":"+textStatus+":"+errorThrown);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//条件查询
|
||||||
|
$(function(){
|
||||||
|
//给查询按钮 添加 点击事件
|
||||||
|
$("#search").click(function(){
|
||||||
|
var username = $("input[name='username']").val();
|
||||||
|
var genders = $("input[name='gender']");
|
||||||
|
var gender = "";
|
||||||
|
for(var i=0;i<genders.length;i++){
|
||||||
|
if(genders[i].checked){
|
||||||
|
gender += genders[i].value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//使用ajax 进行异步交互
|
||||||
|
$.ajax({
|
||||||
|
url:"${pageContext.request.contextPath}/searchUser?username="+username+"&gender="+gender,
|
||||||
|
method:"post",
|
||||||
|
success:function(data){
|
||||||
|
if(data==0){
|
||||||
|
alert("未找到指定内容");
|
||||||
|
$("input[name='username']").val("");
|
||||||
|
$("input[name='gender']").removeAttr("checked");
|
||||||
|
}else{
|
||||||
|
showMsg(data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error:function(XMLHttpRequest,textStatus,errorThrown){
|
||||||
|
alert("失败"+XMLHttpRequest.status+":"+textStatus+":"+errorThrown);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="row" style="width: 100%;">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">会员列表</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<!-- 条件查询 -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>用户姓名</span>
|
||||||
|
<input type="text" name="username" class="form-control">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<span>性别</span>
|
||||||
|
|
||||||
|
<label class="radio-inline">
|
||||||
|
<input type="radio" name="gender" value="男"> 男
|
||||||
|
</label>
|
||||||
|
<label class="radio-inline">
|
||||||
|
<input type="radio"name="gender" value="女"> 女
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3">
|
||||||
|
<button type="button" class="btn btn-primary" id="search"><span class="glyphicon glyphicon-search"></span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 列表显示 -->
|
||||||
|
<table id="tb_list" class="table table-striped table-hover table-bordered">
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
124
web/cart.jsp
Normal file
124
web/cart.jsp
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8"
|
||||||
|
pageEncoding="utf-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<title>购物车</title>
|
||||||
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<script type="text/javascript" src="js/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
function sub(cid,cnum,price){
|
||||||
|
|
||||||
|
if (cnum == 1){
|
||||||
|
if (confirm("当前购物车只有一条商品,是否要移除!"))
|
||||||
|
{
|
||||||
|
location.href = "cart?method=delete&cid="+cid;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
cnum--;
|
||||||
|
location.href = "cart?method=update&cid="+cid+"&cnum="+cnum+"&price="+price;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function add(cid,cnum,price){
|
||||||
|
cnum++;
|
||||||
|
location.href = "cart?method=update&cid="+cid+"&cnum="+cnum+"&price="+price;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function delCart(cid){
|
||||||
|
|
||||||
|
if (confirm("是否要删除购物车数据!")){
|
||||||
|
location.href = "cart?method=delete&cid="+cid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function clearCart(uid){
|
||||||
|
if (confirm("是否要清空购物车!"))
|
||||||
|
{
|
||||||
|
location.href = "cart?method=clear&uid="+uid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body style="background-color:#f5f5f5">
|
||||||
|
<%@ include file="header.jsp"%>
|
||||||
|
<div class="container" style="background-color: white;">
|
||||||
|
<div class="row" style="margin-left: 40px">
|
||||||
|
<h3>我的购物车<small>温馨提示:产品是否购买成功,以最终下单为准哦,请尽快结算</small></h3>
|
||||||
|
</div>
|
||||||
|
<div class="row" style="margin-top: 40px;">
|
||||||
|
|
||||||
|
<c:if test="${empty list}">
|
||||||
|
<h3>购物车空空如也!快去购物车吧!</h3>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${!empty list}">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-10 col-md-offset-1">
|
||||||
|
|
||||||
|
<table class="table table-bordered table-striped table-hover">
|
||||||
|
<tr>
|
||||||
|
<th>序号</th>
|
||||||
|
<th>商品名称</th>
|
||||||
|
<th>价格</th>
|
||||||
|
<th>数量</th>
|
||||||
|
<th>小计</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
<c:set value="0" var="sum"></c:set>
|
||||||
|
<c:forEach items="${list}" var="c" varStatus="i">
|
||||||
|
<tr>
|
||||||
|
<th>${i.count}</th>
|
||||||
|
<th>${c.product.pname}</th>
|
||||||
|
<th>${c.product.pprice}</th>
|
||||||
|
<th width="100px">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button" onclick="sub(${c.cid},${c.cnum},${c.product.pprice})">-</button>
|
||||||
|
</span>
|
||||||
|
<input type="text" class="form-control" id="num_count${i.count}" value="${c.cnum}" readonly="readonly" style="width:40px">
|
||||||
|
<span class="input-group-btn">
|
||||||
|
<button class="btn btn-default" type="button" onclick="add(${c.cid},${c.cnum},${c.product.pprice})">+</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th>¥ ${c.ccount }</th>
|
||||||
|
<th>
|
||||||
|
<button type="button" class="btn btn-default" onclick="delCart(${c.cid})">删除</button>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<c:set var="sum" value="${sum+c.ccount}"></c:set>
|
||||||
|
</c:forEach>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="row">
|
||||||
|
<div class="pull-right" style="margin-right: 40px;">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a id="removeAllProduct" href="javascript:clearCart(0)" onclick="clearCart(${loginUser.uid})" class="btn btn-default btn-lg">清空购物车</a>
|
||||||
|
|
||||||
|
<a href="${pageContext.request.contextPath}/order?method=preView&uid=${loginUser.uid}" class="btn btn-danger btn-lg">添加收货地址</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
<div style="margin-bottom: 20px;">
|
||||||
|
商品金额总计:<span id="total" class="text-danger"><b>¥ ${sum}</b></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 底部 -->
|
||||||
|
<%@ include file="footer.jsp"%>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
33
web/cartSuccess.jsp
Normal file
33
web/cartSuccess.jsp
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8"
|
||||||
|
pageEncoding="utf-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link rel="stylesheet" href="css/bootstrap.min.css" />
|
||||||
|
<title>购物车</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<%@ include file="header.jsp" %>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<hr>
|
||||||
|
<div class="row" style="width: 30%;margin: 0 auto;padding-top: 20px">
|
||||||
|
<div class="panel panel-success">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">购物车提示</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<h3 class="text-default"><span class="glyphicon glyphicon-ok-sign"></span> 添加购物车成功!!</h3>
|
||||||
|
<hr>
|
||||||
|
<a href="${pageContext.request.contextPath}/cart?method=show&uid=${loginUser.uid}" class="btn btn-primary">查看购物车</a>
|
||||||
|
<a href="#" class="btn btn-default">继续购物</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%@ include file="footer.jsp" %>
|
||||||
|
</body>
|
||||||
|
</html>
|
45
web/confirm.jsp
Normal file
45
web/confirm.jsp
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=utf-8"
|
||||||
|
pageEncoding="utf-8"%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<title>在线支付 连接易付宝</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<%@ include file="header.jsp" %>
|
||||||
|
<div class="panel panel-default" style="margin: 0 auto;width: 95%;">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title"><span class="glyphicon glyphicon-yen"></span> 在线支付
|
||||||
|
<span class="pull-right"><a href="${pageContext.request.contextPath }/getOrderList">返回订单列表</a></span>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<form action="https://www.yeepay.com/app-merchant-proxy/node" method="post">
|
||||||
|
<h3>订单号:${p2_Order}</h3>
|
||||||
|
<p class="text-danger"><font size="20px"><strong>付款金额 :${p3_Amt}</strong></font></p>
|
||||||
|
<hr>
|
||||||
|
<input type="hidden" name="pd_FrpId" value="${pd_FrpId }" />
|
||||||
|
<input type="hidden" name="p0_Cmd" value="${p0_Cmd }" />
|
||||||
|
<input type="hidden" name="p1_MerId" value="${p1_MerId }" />
|
||||||
|
<input type="hidden" name="p2_Order" value="${p2_Order }" />
|
||||||
|
<input type="hidden" name="p3_Amt" value="${p3_Amt }" />
|
||||||
|
<input type="hidden" name="p4_Cur" value="${p4_Cur }" />
|
||||||
|
<input type="hidden" name="p5_Pid" value="${p5_Pid }" />
|
||||||
|
<input type="hidden" name="p6_Pcat" value="${p6_Pcat }" />
|
||||||
|
<input type="hidden" name="p7_Pdesc" value="${p7_Pdesc }" />
|
||||||
|
<input type="hidden" name="p8_Url" value="${p8_Url }" />
|
||||||
|
<input type="hidden" name="p9_SAF" value="${p9_SAF }" />
|
||||||
|
<input type="hidden" name="pa_MP" value="${pa_MP }" />
|
||||||
|
<input type="hidden" name="pr_NeedResponse" value="${pr_NeedResponse }" />
|
||||||
|
<input type="hidden" name="hmac" value="${hmac }" />
|
||||||
|
<input type="submit" value="确认支付" class="btn btn-warning btn-lg"/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 底部 -->
|
||||||
|
<%@ include file="footer.jsp"%>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
587
web/css/bootstrap-theme.css
vendored
Normal file
587
web/css/bootstrap-theme.css
vendored
Normal file
@ -0,0 +1,587 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
.btn-default,
|
||||||
|
.btn-primary,
|
||||||
|
.btn-success,
|
||||||
|
.btn-info,
|
||||||
|
.btn-warning,
|
||||||
|
.btn-danger {
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.btn-default:active,
|
||||||
|
.btn-primary:active,
|
||||||
|
.btn-success:active,
|
||||||
|
.btn-info:active,
|
||||||
|
.btn-warning:active,
|
||||||
|
.btn-danger:active,
|
||||||
|
.btn-default.active,
|
||||||
|
.btn-primary.active,
|
||||||
|
.btn-success.active,
|
||||||
|
.btn-info.active,
|
||||||
|
.btn-warning.active,
|
||||||
|
.btn-danger.active {
|
||||||
|
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||||
|
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||||
|
}
|
||||||
|
.btn-default.disabled,
|
||||||
|
.btn-primary.disabled,
|
||||||
|
.btn-success.disabled,
|
||||||
|
.btn-info.disabled,
|
||||||
|
.btn-warning.disabled,
|
||||||
|
.btn-danger.disabled,
|
||||||
|
.btn-default[disabled],
|
||||||
|
.btn-primary[disabled],
|
||||||
|
.btn-success[disabled],
|
||||||
|
.btn-info[disabled],
|
||||||
|
.btn-warning[disabled],
|
||||||
|
.btn-danger[disabled],
|
||||||
|
fieldset[disabled] .btn-default,
|
||||||
|
fieldset[disabled] .btn-primary,
|
||||||
|
fieldset[disabled] .btn-success,
|
||||||
|
fieldset[disabled] .btn-info,
|
||||||
|
fieldset[disabled] .btn-warning,
|
||||||
|
fieldset[disabled] .btn-danger {
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.btn-default .badge,
|
||||||
|
.btn-primary .badge,
|
||||||
|
.btn-success .badge,
|
||||||
|
.btn-info .badge,
|
||||||
|
.btn-warning .badge,
|
||||||
|
.btn-danger .badge {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.btn:active,
|
||||||
|
.btn.active {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-default {
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
|
||||||
|
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #dbdbdb;
|
||||||
|
border-color: #ccc;
|
||||||
|
}
|
||||||
|
.btn-default:hover,
|
||||||
|
.btn-default:focus {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-default:active,
|
||||||
|
.btn-default.active {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
border-color: #dbdbdb;
|
||||||
|
}
|
||||||
|
.btn-default.disabled,
|
||||||
|
.btn-default[disabled],
|
||||||
|
fieldset[disabled] .btn-default,
|
||||||
|
.btn-default.disabled:hover,
|
||||||
|
.btn-default[disabled]:hover,
|
||||||
|
fieldset[disabled] .btn-default:hover,
|
||||||
|
.btn-default.disabled:focus,
|
||||||
|
.btn-default[disabled]:focus,
|
||||||
|
fieldset[disabled] .btn-default:focus,
|
||||||
|
.btn-default.disabled.focus,
|
||||||
|
.btn-default[disabled].focus,
|
||||||
|
fieldset[disabled] .btn-default.focus,
|
||||||
|
.btn-default.disabled:active,
|
||||||
|
.btn-default[disabled]:active,
|
||||||
|
fieldset[disabled] .btn-default:active,
|
||||||
|
.btn-default.disabled.active,
|
||||||
|
.btn-default[disabled].active,
|
||||||
|
fieldset[disabled] .btn-default.active {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-primary {
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #245580;
|
||||||
|
}
|
||||||
|
.btn-primary:hover,
|
||||||
|
.btn-primary:focus {
|
||||||
|
background-color: #265a88;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-primary:active,
|
||||||
|
.btn-primary.active {
|
||||||
|
background-color: #265a88;
|
||||||
|
border-color: #245580;
|
||||||
|
}
|
||||||
|
.btn-primary.disabled,
|
||||||
|
.btn-primary[disabled],
|
||||||
|
fieldset[disabled] .btn-primary,
|
||||||
|
.btn-primary.disabled:hover,
|
||||||
|
.btn-primary[disabled]:hover,
|
||||||
|
fieldset[disabled] .btn-primary:hover,
|
||||||
|
.btn-primary.disabled:focus,
|
||||||
|
.btn-primary[disabled]:focus,
|
||||||
|
fieldset[disabled] .btn-primary:focus,
|
||||||
|
.btn-primary.disabled.focus,
|
||||||
|
.btn-primary[disabled].focus,
|
||||||
|
fieldset[disabled] .btn-primary.focus,
|
||||||
|
.btn-primary.disabled:active,
|
||||||
|
.btn-primary[disabled]:active,
|
||||||
|
fieldset[disabled] .btn-primary:active,
|
||||||
|
.btn-primary.disabled.active,
|
||||||
|
.btn-primary[disabled].active,
|
||||||
|
fieldset[disabled] .btn-primary.active {
|
||||||
|
background-color: #265a88;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-success {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
|
||||||
|
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #3e8f3e;
|
||||||
|
}
|
||||||
|
.btn-success:hover,
|
||||||
|
.btn-success:focus {
|
||||||
|
background-color: #419641;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-success:active,
|
||||||
|
.btn-success.active {
|
||||||
|
background-color: #419641;
|
||||||
|
border-color: #3e8f3e;
|
||||||
|
}
|
||||||
|
.btn-success.disabled,
|
||||||
|
.btn-success[disabled],
|
||||||
|
fieldset[disabled] .btn-success,
|
||||||
|
.btn-success.disabled:hover,
|
||||||
|
.btn-success[disabled]:hover,
|
||||||
|
fieldset[disabled] .btn-success:hover,
|
||||||
|
.btn-success.disabled:focus,
|
||||||
|
.btn-success[disabled]:focus,
|
||||||
|
fieldset[disabled] .btn-success:focus,
|
||||||
|
.btn-success.disabled.focus,
|
||||||
|
.btn-success[disabled].focus,
|
||||||
|
fieldset[disabled] .btn-success.focus,
|
||||||
|
.btn-success.disabled:active,
|
||||||
|
.btn-success[disabled]:active,
|
||||||
|
fieldset[disabled] .btn-success:active,
|
||||||
|
.btn-success.disabled.active,
|
||||||
|
.btn-success[disabled].active,
|
||||||
|
fieldset[disabled] .btn-success.active {
|
||||||
|
background-color: #419641;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-info {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
|
||||||
|
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #28a4c9;
|
||||||
|
}
|
||||||
|
.btn-info:hover,
|
||||||
|
.btn-info:focus {
|
||||||
|
background-color: #2aabd2;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-info:active,
|
||||||
|
.btn-info.active {
|
||||||
|
background-color: #2aabd2;
|
||||||
|
border-color: #28a4c9;
|
||||||
|
}
|
||||||
|
.btn-info.disabled,
|
||||||
|
.btn-info[disabled],
|
||||||
|
fieldset[disabled] .btn-info,
|
||||||
|
.btn-info.disabled:hover,
|
||||||
|
.btn-info[disabled]:hover,
|
||||||
|
fieldset[disabled] .btn-info:hover,
|
||||||
|
.btn-info.disabled:focus,
|
||||||
|
.btn-info[disabled]:focus,
|
||||||
|
fieldset[disabled] .btn-info:focus,
|
||||||
|
.btn-info.disabled.focus,
|
||||||
|
.btn-info[disabled].focus,
|
||||||
|
fieldset[disabled] .btn-info.focus,
|
||||||
|
.btn-info.disabled:active,
|
||||||
|
.btn-info[disabled]:active,
|
||||||
|
fieldset[disabled] .btn-info:active,
|
||||||
|
.btn-info.disabled.active,
|
||||||
|
.btn-info[disabled].active,
|
||||||
|
fieldset[disabled] .btn-info.active {
|
||||||
|
background-color: #2aabd2;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-warning {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
|
||||||
|
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #e38d13;
|
||||||
|
}
|
||||||
|
.btn-warning:hover,
|
||||||
|
.btn-warning:focus {
|
||||||
|
background-color: #eb9316;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-warning:active,
|
||||||
|
.btn-warning.active {
|
||||||
|
background-color: #eb9316;
|
||||||
|
border-color: #e38d13;
|
||||||
|
}
|
||||||
|
.btn-warning.disabled,
|
||||||
|
.btn-warning[disabled],
|
||||||
|
fieldset[disabled] .btn-warning,
|
||||||
|
.btn-warning.disabled:hover,
|
||||||
|
.btn-warning[disabled]:hover,
|
||||||
|
fieldset[disabled] .btn-warning:hover,
|
||||||
|
.btn-warning.disabled:focus,
|
||||||
|
.btn-warning[disabled]:focus,
|
||||||
|
fieldset[disabled] .btn-warning:focus,
|
||||||
|
.btn-warning.disabled.focus,
|
||||||
|
.btn-warning[disabled].focus,
|
||||||
|
fieldset[disabled] .btn-warning.focus,
|
||||||
|
.btn-warning.disabled:active,
|
||||||
|
.btn-warning[disabled]:active,
|
||||||
|
fieldset[disabled] .btn-warning:active,
|
||||||
|
.btn-warning.disabled.active,
|
||||||
|
.btn-warning[disabled].active,
|
||||||
|
fieldset[disabled] .btn-warning.active {
|
||||||
|
background-color: #eb9316;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.btn-danger {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
|
||||||
|
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #b92c28;
|
||||||
|
}
|
||||||
|
.btn-danger:hover,
|
||||||
|
.btn-danger:focus {
|
||||||
|
background-color: #c12e2a;
|
||||||
|
background-position: 0 -15px;
|
||||||
|
}
|
||||||
|
.btn-danger:active,
|
||||||
|
.btn-danger.active {
|
||||||
|
background-color: #c12e2a;
|
||||||
|
border-color: #b92c28;
|
||||||
|
}
|
||||||
|
.btn-danger.disabled,
|
||||||
|
.btn-danger[disabled],
|
||||||
|
fieldset[disabled] .btn-danger,
|
||||||
|
.btn-danger.disabled:hover,
|
||||||
|
.btn-danger[disabled]:hover,
|
||||||
|
fieldset[disabled] .btn-danger:hover,
|
||||||
|
.btn-danger.disabled:focus,
|
||||||
|
.btn-danger[disabled]:focus,
|
||||||
|
fieldset[disabled] .btn-danger:focus,
|
||||||
|
.btn-danger.disabled.focus,
|
||||||
|
.btn-danger[disabled].focus,
|
||||||
|
fieldset[disabled] .btn-danger.focus,
|
||||||
|
.btn-danger.disabled:active,
|
||||||
|
.btn-danger[disabled]:active,
|
||||||
|
fieldset[disabled] .btn-danger:active,
|
||||||
|
.btn-danger.disabled.active,
|
||||||
|
.btn-danger[disabled].active,
|
||||||
|
fieldset[disabled] .btn-danger.active {
|
||||||
|
background-color: #c12e2a;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
.thumbnail,
|
||||||
|
.img-thumbnail {
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.dropdown-menu > li > a:hover,
|
||||||
|
.dropdown-menu > li > a:focus {
|
||||||
|
background-color: #e8e8e8;
|
||||||
|
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
||||||
|
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.dropdown-menu > .active > a,
|
||||||
|
.dropdown-menu > .active > a:hover,
|
||||||
|
.dropdown-menu > .active > a:focus {
|
||||||
|
background-color: #2e6da4;
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.navbar-default {
|
||||||
|
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
|
||||||
|
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.navbar-default .navbar-nav > .open > a,
|
||||||
|
.navbar-default .navbar-nav > .active > a {
|
||||||
|
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
|
||||||
|
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.navbar-brand,
|
||||||
|
.navbar-nav > li > a {
|
||||||
|
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
|
||||||
|
}
|
||||||
|
.navbar-inverse {
|
||||||
|
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
|
||||||
|
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.navbar-inverse .navbar-nav > .open > a,
|
||||||
|
.navbar-inverse .navbar-nav > .active > a {
|
||||||
|
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
|
||||||
|
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||||
|
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.navbar-inverse .navbar-brand,
|
||||||
|
.navbar-inverse .navbar-nav > li > a {
|
||||||
|
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.navbar-static-top,
|
||||||
|
.navbar-fixed-top,
|
||||||
|
.navbar-fixed-bottom {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.navbar .navbar-nav .open .dropdown-menu > .active > a,
|
||||||
|
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||||
|
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||||
|
color: #fff;
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.alert {
|
||||||
|
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
|
||||||
|
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
}
|
||||||
|
.alert-success {
|
||||||
|
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
|
||||||
|
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #b2dba1;
|
||||||
|
}
|
||||||
|
.alert-info {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
|
||||||
|
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #9acfea;
|
||||||
|
}
|
||||||
|
.alert-warning {
|
||||||
|
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
|
||||||
|
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #f5e79e;
|
||||||
|
}
|
||||||
|
.alert-danger {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
|
||||||
|
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #dca7a7;
|
||||||
|
}
|
||||||
|
.progress {
|
||||||
|
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
|
||||||
|
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar {
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-success {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
|
||||||
|
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-info {
|
||||||
|
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
|
||||||
|
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-warning {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
|
||||||
|
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-danger {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
|
||||||
|
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.progress-bar-striped {
|
||||||
|
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||||
|
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||||
|
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||||
|
}
|
||||||
|
.list-group {
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
}
|
||||||
|
.list-group-item.active,
|
||||||
|
.list-group-item.active:hover,
|
||||||
|
.list-group-item.active:focus {
|
||||||
|
text-shadow: 0 -1px 0 #286090;
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #2b669a;
|
||||||
|
}
|
||||||
|
.list-group-item.active .badge,
|
||||||
|
.list-group-item.active:hover .badge,
|
||||||
|
.list-group-item.active:focus .badge {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
.panel {
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||||
|
}
|
||||||
|
.panel-default > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
||||||
|
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-primary > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||||
|
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-success > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
|
||||||
|
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-info > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
|
||||||
|
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-warning > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
|
||||||
|
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.panel-danger > .panel-heading {
|
||||||
|
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
|
||||||
|
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
}
|
||||||
|
.well {
|
||||||
|
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||||
|
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
|
||||||
|
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
border-color: #dcdcdc;
|
||||||
|
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||||
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-theme.css.map */
|
1
web/css/bootstrap-theme.css.map
Normal file
1
web/css/bootstrap-theme.css.map
Normal file
File diff suppressed because one or more lines are too long
6
web/css/bootstrap-theme.min.css
vendored
Normal file
6
web/css/bootstrap-theme.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/css/bootstrap-theme.min.css.map
Normal file
1
web/css/bootstrap-theme.min.css.map
Normal file
File diff suppressed because one or more lines are too long
6757
web/css/bootstrap.css
vendored
Normal file
6757
web/css/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
web/css/bootstrap.css.map
Normal file
1
web/css/bootstrap.css.map
Normal file
File diff suppressed because one or more lines are too long
6
web/css/bootstrap.min.css
vendored
Normal file
6
web/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
web/css/bootstrap.min.css.map
Normal file
1
web/css/bootstrap.min.css.map
Normal file
File diff suppressed because one or more lines are too long
75
web/css/login.css
Normal file
75
web/css/login.css
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/*閺嶅嘲绱¢崚婵嗩潗閸栵拷*/
|
||||||
|
*{margin:0;padding: 0;}
|
||||||
|
a{text-decoration: none;color: #000;}
|
||||||
|
img {border: 0; vertical-align:middle;}
|
||||||
|
ul li{list-style: none;}
|
||||||
|
body,h1,h2,h3,h4,h5,h6{font: 12px 鐎瑰缍<EFBFBD>,Times New Roman;}
|
||||||
|
body{background: rgb(20,33,42) }
|
||||||
|
|
||||||
|
/*妫板嫬鐣炬稊澶嬬壉瀵拷*/
|
||||||
|
.w{width: 1000px;margin: 0 auto;}
|
||||||
|
.fl{float: left;}
|
||||||
|
.fr{float: right;}
|
||||||
|
.clear{clear:both;}
|
||||||
|
.center{margin:0 auto;}
|
||||||
|
.border{border:1px solid red;}
|
||||||
|
|
||||||
|
table{width: 360px;height: 240px;border:none;margin: 0 auto;}
|
||||||
|
tr,th,td{height: 20px;}
|
||||||
|
th{width: 60px;}
|
||||||
|
input:focus{border: 2px solid orange;}
|
||||||
|
/*閻€劍鍩涢惂璇茬秿*/
|
||||||
|
.top{width: 100%;height: 100px;background: #fff;}
|
||||||
|
.top .logo{width: 1130px;height: 100px;}
|
||||||
|
.form{width: 1130px;height:588px;background: url('../image/login_bg.jpg')no-repeat center center; }
|
||||||
|
.login{width: 400px;height: 470px;/*border:1px solid #ff6700;*/margin:30px auto;background: #444;color:#fff;margin-right: 0px;border-radius: 4px;}
|
||||||
|
.login .login_center{width: 360px;margin: 10px auto;}
|
||||||
|
.login .login_top{margin: 10px 0;}
|
||||||
|
.login .login_top .left{height: 40px;line-height: 40px;font-weight: bold;font-size: 20px;}
|
||||||
|
.login .login_top .right{height: 40px;line-height: 40px;font-size: 13px;}
|
||||||
|
.login .login_top .right a{color:red;font-weight: bold;}
|
||||||
|
.login .login_top .right a:hover{color:orange;}
|
||||||
|
.xian{height: 2px;background: #ff6700;margin:8px 0;}
|
||||||
|
|
||||||
|
.login_main{padding:20px 0;}
|
||||||
|
.login_main .username{font:16px Times New Roman;height: 40px;line-height: 40px;margin:15px 0;}
|
||||||
|
.login_main .username .shurukuang{width: 150px;height: 30px;border:1px solid #ccc;padding:5px 10px; }
|
||||||
|
.login_main .username .yanzhengma{width: 45px;height: 30px;border:1px solid #ccc;padding:5px 10px; }
|
||||||
|
.login_main .username .shurukuang:focus{border: 1px solid blue;background: #F0FFFF;}
|
||||||
|
.login_main .username .yanzhengma:focus{border: 1px solid blue;background: #F0FFFF;}
|
||||||
|
.login_main .username .right{margin-left: 20px;}
|
||||||
|
|
||||||
|
/*鐠佸墽鐤嗛幐澶愭尦閺嶅嘲绱<E598B2>*/
|
||||||
|
.login .login_center .login_submit{margin: 15px auto;}
|
||||||
|
.login .login_center .submit{border:none;width: 240px;height: 45px;margin-left:55px;background: #ff6700;color: #fff; font-size: 20px;font-weight: bold;letter-spacing: 2px;cursor:pointer;border-radius: 4px;}
|
||||||
|
.login .login_center .submit:hover{border:1px solid #fff;}
|
||||||
|
|
||||||
|
|
||||||
|
/*閻€劍鍩涘▔銊ュ斀*/
|
||||||
|
.regist{width: 1000px;height: 550px;margin:20px auto;background:#fff;color:#000;border-radius: 6px;}
|
||||||
|
.regist_center{width: 870px;margin: 10px auto;}
|
||||||
|
.regist .regist_top{margin: 20px 0;}
|
||||||
|
.regist .regist_top .left{height: 40px;line-height: 40px;font-weight: bold;font-size: 20px; margin-top: 20px;}
|
||||||
|
.regist .regist_top .right{height: 40px;line-height: 40px;font-size: 13px;margin-top: 20px;}
|
||||||
|
.regist .regist_top .right a{color:#ff6700;font-weight: bold;}
|
||||||
|
.regist .regist_top .right a:hover{color:orange;}
|
||||||
|
.xian{height: 2px;background: #ff6700;margin: 8px auto;}
|
||||||
|
|
||||||
|
.regist_main{padding:10px 0;padding-left:45px;}
|
||||||
|
.regist_main .username{font:16px Times New Roman;height: 40px;line-height: 40px;margin:20px 0;}
|
||||||
|
.regist_main .username .shurukuang{width: 220px;height: 30px;border:1px solid #ccc;padding:5px 10px; }
|
||||||
|
.regist_main .username .yanzhengma{width: 100px;height: 30px;border:1px solid #ccc;padding:5px 10px; }
|
||||||
|
.regist_main .username .shurukuang:focus{border: 1px solid blue;background: #F0FFFF;}
|
||||||
|
.regist_main .username .yanzhengma:focus{border: 1px solid blue;background: #F0FFFF;}
|
||||||
|
.regist_main .username .right{margin-left: 20px;}
|
||||||
|
|
||||||
|
.regist_main .username span{display:inline-block;margin-left:20px;font-size: 12px;color: #ccc;font-weight: bold;}
|
||||||
|
.regist_main .username span:hover{color: #ff6700;}
|
||||||
|
|
||||||
|
.regist .regist_center .regist_submit{margin: 20px auto;}
|
||||||
|
.regist .regist_center .submit{border:none;width: 440px;height: 45px;margin-left:45px;background: #ff6700;color: #fff; font-size: 22px;font-weight: bold;letter-spacing: 8px;cursor:pointer;}
|
||||||
|
.regist .regist_center .submit:hover{border:1px solid #ccc;}
|
||||||
|
|
||||||
|
footer{width: 100%;height: 80px;background:#fff;padding: 30px 0;}
|
||||||
|
footer .copyright{height: 30px;line-height: 30px;font-size: 13px;word-spacing: 15px;text-align: center;}
|
||||||
|
footer .copyright:first-of-type{margin-top: 10px;}
|
117
web/css/login2.css
Normal file
117
web/css/login2.css
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
@charset "utf-8";
|
||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
body{ margin:0; padding:0}
|
||||||
|
a{ text-decoration:none; outline:none}
|
||||||
|
#top{
|
||||||
|
height:40px;
|
||||||
|
background-color:#333333;
|
||||||
|
|
||||||
|
}
|
||||||
|
#topdiv{ width:1230px; margin:0 auto;}
|
||||||
|
#a_top{
|
||||||
|
color:#b0b0b0b0;
|
||||||
|
line-height:40px;
|
||||||
|
font-size:12px;
|
||||||
|
float:left
|
||||||
|
}
|
||||||
|
span li{ list-style:none; float:left; line-height:40px; color:#b0b0b0b0; font-size:12px; margin:0px 5px;}
|
||||||
|
#shorpcar{
|
||||||
|
font-size:14px;
|
||||||
|
height:40px;
|
||||||
|
width:120px;
|
||||||
|
float:right;
|
||||||
|
line-height:40px;
|
||||||
|
background-color:#F00;
|
||||||
|
color:#FFF;
|
||||||
|
margin-left:30px;
|
||||||
|
text-align:center
|
||||||
|
}
|
||||||
|
#shorpcar:hover{ background:#666666}
|
||||||
|
#a_top:hover{ color:#FFF}
|
||||||
|
#second{
|
||||||
|
height:100px;
|
||||||
|
width:1230px;
|
||||||
|
margin:0 auto;
|
||||||
|
}
|
||||||
|
#seimg{ float:left;}
|
||||||
|
#seimg:nth-child(1){ margin-top:23px;}
|
||||||
|
#second img:nth-child(2){ margin-top:17px;}
|
||||||
|
#product{ float:left; margin:0;}
|
||||||
|
p a{
|
||||||
|
line-height:100px;
|
||||||
|
font-size:18px;
|
||||||
|
color:#000;
|
||||||
|
font-family:"微软雅黑";
|
||||||
|
float:left;
|
||||||
|
margin-left:15px;
|
||||||
|
font-size:18px
|
||||||
|
}
|
||||||
|
p a:hover{ color:#F00}
|
||||||
|
input{
|
||||||
|
height:52px;
|
||||||
|
margin:24px 0px;
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
input:nth-chlid(1){ width:254px}
|
||||||
|
input:nth-chlid(1){ width:50px; float:right}
|
||||||
|
#txt{
|
||||||
|
width:252px;
|
||||||
|
height:52px;
|
||||||
|
float:right;
|
||||||
|
border:#cccccc 1px solid;
|
||||||
|
color:#757575;
|
||||||
|
line-height:52px;
|
||||||
|
margin-top:24px;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
#txt:hover{ border:#ff6700 1px solid; z-index:9}
|
||||||
|
#thred{ width:1230px; height:460px; margin:0 auto;}
|
||||||
|
#forth{ width:1230px; height:170px; margin:0 auto; padding-top:17px}
|
||||||
|
#forth span{ width:234px; height:170px; float:left;}
|
||||||
|
#a_left{ margin-left:16px}
|
||||||
|
#forth a{ float:left; opacity:0.7}
|
||||||
|
#forth a:hover{ opacity:1}
|
||||||
|
#fifth{ width:1230px; margin:0 auto; height:80px;}
|
||||||
|
#fif_text{ font-family:"黑体"; font-size:24px; height:30px; line-height:80px; float:left; margin-bottom:0px;}
|
||||||
|
#fif_a{ float:right; width:400px; height:80px; position:relative; left:270px;}
|
||||||
|
#fif_a li{ line-height:80px}
|
||||||
|
#m6{ float:left; line-height:80px; color:#000}
|
||||||
|
#m6:hover{ color:#ff6700}
|
||||||
|
|
||||||
|
|
||||||
|
#sixth{ width:1230px; height:341px; margin:0 auto; text-align:center}
|
||||||
|
#sixth span{ width:220px; height:301px; background-color:#fafafa; float:left; margin-left:30px;}
|
||||||
|
#siximg{ opacity:0.7}
|
||||||
|
#siximg:hover{ opacity:1}
|
||||||
|
#na{ font-size:18px; color:#000; font-family:"宋体"; margin-top:20px}
|
||||||
|
#chip{ font-size:12px; color:#b0b0b0}
|
||||||
|
#pri{ color:#ff6709}
|
||||||
|
#seventh{ height:130px; background-color:#fafafa; margin-top:20px; padding-top:45px; text-align:center}
|
||||||
|
#sevep{ line-height:20px; font-size:10px;}
|
||||||
|
|
||||||
|
#liebiaobox{border:#FFF 1px solid; padding-top:40px}
|
||||||
|
#liebiaobox:hover{ border:#F00 1px solid}
|
||||||
|
|
||||||
|
#body_big_a{ float:left; width:280px; height:60px; border:#bbbbbb 1px solid; text-align:center;}
|
||||||
|
#body_big_a:hover{ color:#ff6700; border:#ff6700 1px solid;}
|
||||||
|
#body_big_btn{ width:200px; height:50px; background:#ff6700; border:#ff6700 2px solid; float:left; margin-top:10px; text-align:center; color:#FFF; font-weight:bold}
|
||||||
|
#body_big_btn:hover{ border:#f8f8f8 2px solid;}
|
||||||
|
#body_big_pric{ font-size:14px}
|
||||||
|
|
||||||
|
#dingdanxiangqing_body{ width:100%; height:520px; background:#f5f5f5; padding-top:20px}
|
||||||
|
#dingdanxiangqing_body_big{ width:1230px; height:500px; margin:0px auto;}
|
||||||
|
#big_left{ height:500px; width:195px; background:#FFF; float:left; padding-left:40px}
|
||||||
|
#big_left_a{ line-height:45px; font-size:16px}
|
||||||
|
#big_right{ width:1000px; height:500px; background:#FFF; float:left;margin-left: 10px}
|
||||||
|
#big_right_p{ float:right; width:132px; height:61px; border-left:#aaaaaa 1px solid; line-height:61px; text-align:center; font-size:12px; margin-top:21px}
|
||||||
|
|
||||||
|
#big_right_txt{ width:902px; height:47px; margin-top:12px; border:#aaaaaa 1px solid; border-radius:5px; background-color:#fdfdfd;}
|
||||||
|
#big_right_txt_box{ float:left; height:47px; margin-left:20px; width:65px}
|
||||||
|
#big_right_txt_p{ line-height:15px; color:#757575}
|
||||||
|
|
||||||
|
|
||||||
|
#gouwuche_top{ height:101px; border-bottom:#ff6700 2px solid; background-color:#FFF}
|
||||||
|
#gouwuche_body{ width:1230px; height:102px; margin:0 auto; border-bottom:#cccccc 1px solid; background-color:#FFF}
|
||||||
|
#phone_sum{height:40px; width:40px; line-height:40px; text-align:center; background-color:#FFF}
|
||||||
|
#phone_sum:hover{ background-color:#e0e0e0;}
|
242
web/css/style.css
Normal file
242
web/css/style.css
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
*{margin: 0;padding: 0;text-decoration: none;list-style-type: none;font-family: Times New Roman;}
|
||||||
|
|
||||||
|
img{border:none;}
|
||||||
|
a{border:none;text-decoration: none;color:#000;}
|
||||||
|
.border{border:1px solid red;}
|
||||||
|
.center{margin: 0 auto;}
|
||||||
|
.w{width: 1226px;margin: 0 auto;}
|
||||||
|
.fl{float: left;}
|
||||||
|
.fr{float: right;}
|
||||||
|
.clear{clear:both;}
|
||||||
|
.mt20{margin-top: 20px;}
|
||||||
|
.mt10{margin-top: 10px;}
|
||||||
|
.ml20{margin-left: 20px;}
|
||||||
|
.ml40{margin-left: 40px;}
|
||||||
|
.mr40{margin-right: 40px;}
|
||||||
|
.mb20{margin-bottom: 20px;}
|
||||||
|
.border2{border:2px solid #ff6700;}
|
||||||
|
.ft20{font-size: 20px;}
|
||||||
|
.ftbc{color: #ff6700;font-weight: bold;}
|
||||||
|
.pr{padding-right: 40px;}
|
||||||
|
|
||||||
|
.h3{font-size: 22px;font-weight: bold;}
|
||||||
|
|
||||||
|
|
||||||
|
/*header*/
|
||||||
|
header{width: 100%;height: 40px;background: #333}
|
||||||
|
header .top{width: 1226px;height: 40px;line-height: 40px;}
|
||||||
|
header .top .left ul li{float: left;font-size: 12px;color: #ccc;}
|
||||||
|
header .top .left ul li a{display:block;padding:0 8px;font-size: 12px;font-family: Times New Roman;color: #b0b0b0;}
|
||||||
|
header .top .left ul li a:hover{color:#fff;}
|
||||||
|
header .top .right ul li{float: left;font-size: 12px;color: #ccc;}
|
||||||
|
header .top .right ul li a{display:block;padding:0 8px;font-size: 12px;font-family: Times New Roman;color: #b0b0b0;}
|
||||||
|
header .top .right ul li a:hover{color:#fff;}
|
||||||
|
header .top .right .gouwuche a{color:#fff;}
|
||||||
|
header .top .right .gouwuche{margin:0 20px;background: #424242;width: 120px;text-align: center;font-size: 12px;cursor:pointer;background: #ff6700;color: #fff;}
|
||||||
|
|
||||||
|
header .top .right .gouwuche:hover{color:#000;background: #666;}
|
||||||
|
/*banner_x*/
|
||||||
|
.banner_x {width: 1226px;height: 100px;}
|
||||||
|
.banner_x .logo{background: url('../image/logo_top.png') no-repeat center center;width: 50px;height: 100px;}
|
||||||
|
.banner_x .ad_top{width: 180px;height: 100px;background: url('../image/yyymix.gif') no-repeat center center;}
|
||||||
|
.banner_x .nav ul li{float: left;height: 100px;line-height: 100px;}
|
||||||
|
.banner_x .nav ul li a{display:inline-block;color: #000;font-size: 16px;padding: 0 10px;}
|
||||||
|
.banner_x .nav ul li a:hover{color: rgb(255,103,0); }
|
||||||
|
.banner_x .search{width: 308px;height: 100px;line-height: 100px;}
|
||||||
|
.banner_x .search .text{width: 250px;height:50px;line-height: 50px;font-size: 12px;margin-top: 25px;border:1px solid #ccc;}
|
||||||
|
.banner_x .search .text:hover{border-color: #ff6700;}
|
||||||
|
.banner_x .search .text .shuru{border: none;width: 250px;height: 50px;}
|
||||||
|
.banner_x .search .submit{width: 50px;height:50px;line-height: 50px;text-align:center;font-size: 12px;margin-top: 25px;border:1px solid #ccc;}
|
||||||
|
.banner_x .search .submit .sousuo{letter-spacing:3px;text-align:center;width: 50px;height:50px;border: none;background: none;cursor:pointer;}
|
||||||
|
.banner_x .search .submit:hover{border-color: #ff6700;color:#ff6700;}
|
||||||
|
/*banner_y*/
|
||||||
|
.banner_y{width:1226px;height:460px;background: url('../image/banner2.jpg') no-repeat;}
|
||||||
|
.banner_y .nav{width: 234px;height: 460px;background: rgb(12,12,19);}
|
||||||
|
.banner_y .nav ul{padding: 20px 0;position:relative;}
|
||||||
|
.banner_y .nav ul li{display: block;width: 174px;height: 40px;line-height:40px;font-size: 14px;padding: 0 30px;}
|
||||||
|
.banner_y .nav ul li .pop{width: 800px;height: 460px;background: #fff;position:absolute;left:234px;top:0px;display: none;}
|
||||||
|
.banner_y .nav ul li:hover .pop{display: block;box-shadow: 2px 3px 5px #ccc; border-top: 1px solid #ccc;}
|
||||||
|
.banner_y .nav ul li .pop .left{width: 265px;height: 460px;background: #fff;}
|
||||||
|
.banner_y .nav ul li .pop .left div{margin-bottom: 3px;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_left{height: 40px;line-height:40px; font-size: 14px;margin-left: 10px;margin-top: 20px;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_left a{color: #000;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_left a img{valign:middle;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_left a span{display: inline-block;margin-left: 10px;font-size: 14px;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_left a span:hover{color:#ff6700;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_right{margin-top: 25px;height: 40px;line-height: 40px;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_right a{display: block;width: 60px;line-height:24px;height: 24px;text-align: center;font-size: 12px;color:#ff6700;border:1px solid #ff6700;}
|
||||||
|
.banner_y .nav ul li .pop .left .xuangou_right a:hover{display: block;background:#ff6700;color:#fff; }
|
||||||
|
|
||||||
|
.banner_y .nav ul li .pop .ctn{width: 265px;height: 460px;}
|
||||||
|
.banner_y .nav ul li .pop .ctn div{margin-bottom: 3px;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_left{height: 40px;line-height:40px; font-size: 14px;margin-left: 10px;margin-top: 20px;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_left a{color: #000;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_left a img{valign:middle;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_left a span{display: inline-block;margin-left: 10px;font-size: 14px;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_left a span:hover{color:#ff6700;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_right{margin-top: 25px;height: 40px;line-height: 40px;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_right a{display: block;width: 60px;line-height:24px;height: 24px;text-align: center;font-size: 12px;color:#ff6700;border:1px solid #ff6700;}
|
||||||
|
.banner_y .nav ul li .pop .ctn .xuangou_right a:hover{display: block;background:#ff6700;color:#fff; }
|
||||||
|
|
||||||
|
.banner_y .nav ul li .pop .right{width: 265px;height: 460px;margin-right: 5px;}
|
||||||
|
.banner_y .nav ul li .pop .right div{margin-bottom: 3px;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_left{height: 40px;line-height:40px; font-size: 14px;margin-left: 10px;margin-top: 20px;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_left a{color: #000;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_left a img{valign:middle;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_left a span{display: inline-block;margin-left: 10px;font-size: 14px;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_left a span:hover{color:#ff6700;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_right{margin-top: 25px;height: 40px;line-height: 40px;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_right a{display: block;width: 60px;line-height:24px;height: 24px;text-align: center;font-size: 12px;color:#ff6700;border:1px solid #ff6700;}
|
||||||
|
.banner_y .nav ul li .pop .right .xuangou_right a:hover{display: block;background:#ff6700;color:#fff; }
|
||||||
|
|
||||||
|
.banner_y .nav ul li:hover{background: #ff6700; }
|
||||||
|
.banner_y .nav ul li a{display:inline-block;margin-left:10px;color: #fff;}
|
||||||
|
|
||||||
|
/*sub_banner*/
|
||||||
|
.sub_banner{width: 1226px;height: 170px;margin-top: 15px;}
|
||||||
|
.sub_banner .sidebar{width: 234px;height: 170px;}
|
||||||
|
.sub_banner .sidebar div{width: 78px;height: 85px;marign:0;padding: 0;}
|
||||||
|
.sub_banner .sidebar div a img{opacity:0.8;}
|
||||||
|
.sub_banner .sidebar div a img:hover{opacity:1;}
|
||||||
|
.sub_banner .datu{width: 316px;height: 170px;margin-left: 14px;}
|
||||||
|
.sub_banner .datu a img{width: 316px;height: 170px;opacity:0.8;}
|
||||||
|
.sub_banner .datu a img:hover{opacity:1;}
|
||||||
|
/*danpin*/
|
||||||
|
.biaoti{width: 1226px;height: 58px;line-height: 58px;font-size:
|
||||||
|
22px;font-weight: bold;margin-top: 20px;}
|
||||||
|
.danpin .main{width: 1226px;height: 340px;}
|
||||||
|
.danpin .main .mingxing{width: 234px;height: 339px;background: rgb(250,250,250);}
|
||||||
|
.danpin .main .mingxing:nth-of-type(1){border-top: 1px solid orange;margin-right:14px;}
|
||||||
|
.danpin .main .mingxing:nth-of-type(2){border-top: 1px solid green;margin-right:14px;}
|
||||||
|
.danpin .main .mingxing:nth-of-type(3){border-top: 1px solid blue;margin-right:14px;}
|
||||||
|
.danpin .main .mingxing:nth-of-type(4){border-top: 1px solid red;margin-right:14px;}
|
||||||
|
.danpin .main .mingxing:nth-of-type(5){border-top: 1px solid teal;}
|
||||||
|
.danpin .main .mingxing .sub_mingxing{padding: 37px;}
|
||||||
|
.danpin .main .mingxing .sub_mingxing a img{display:block;width: 160px;height: 160px;opacity: 0.85}
|
||||||
|
.danpin .main .mingxing .sub_mingxing a img:hover{width: 160px;height: 160px;opacity: 1;}
|
||||||
|
.danpin .main .mingxing .pinpai{width: 234px;height: 14px;line-height: 14px;text-align: center;margin-top: -10px;}
|
||||||
|
.danpin .main .mingxing .pinpai a{font-size: 14px;color:#333;}
|
||||||
|
.danpin .main .mingxing .youhui{width: 234px;height: 12px;line-height: 12px;margin:15px 0;font-size: 12px;color: rgb(176,176,176);text-align: center;}
|
||||||
|
.danpin .main .mingxing .jiage{font-size: 14px;text-align: center;color:#ff6709;}
|
||||||
|
|
||||||
|
/*peijian*/
|
||||||
|
.peijian{background: rgb(245,245,245);}
|
||||||
|
.peijian .main{height:614px;}
|
||||||
|
.peijian .main .content{width: 1226px;height: 300px;}
|
||||||
|
.peijian .main .content:nth-of-type(2){margin-top: 14px;}
|
||||||
|
.peijian .main .content .remen{width:234px;height: 300px;margin-right: 14px;position:relative;background: #fff;}
|
||||||
|
.peijian .main .content .remen:hover{margin-top: -2px;box-shadow: 0px 0px 30px #ccc;}
|
||||||
|
.peijian .main .content .remen:nth-of-type(5){margin:0;}
|
||||||
|
.peijian .main .content .remen .xinpin span{display: block;margin:0 auto;font-size: 10px;line-height:20px;height: 20px;color:#fff;width: 65px;background: #83c44e;text-align: center;}
|
||||||
|
.peijian .main .content .remen .tu a img{margin:10px 42px 20px 42px;}
|
||||||
|
.peijian .main .content .remen .miaoshu{width: 234px;height: 25px;line-height: 25px;text-align: center;overflow: hidden;}
|
||||||
|
.peijian .main .content .remen .miaoshu a{color:#000;font-size: 14px;}
|
||||||
|
.peijian .main .content .remen .jiage{color:#ff6700;font-size: 14px;text-align:center;width: 234px;height: 25px;line-height: 25px;}
|
||||||
|
.peijian .main .content .remen .pingjia{width:234px;height: 15px;line-height: 15px;font-size: 12px;color:#aaa;text-align: center;}
|
||||||
|
.peijian .main .content .remen .piao{width: 204px;height: 60px;font-size:12px;padding:10px 0px 0px 30px;background:#ff6700; position: absolute;display: none;}
|
||||||
|
.peijian .main .content .remen .piao a{color:#fff;}
|
||||||
|
.peijian .main .content .remen .piao span{display: block;margin-top:5px;}
|
||||||
|
.peijian .main .content .remen:hover .piao{display: block;margin-top: -40px;}
|
||||||
|
.peijian .main .content .remenlast{width:234px;height: 300px;}
|
||||||
|
.hongmi:hover{margin-top: -2px;box-shadow: 0px 0px 15px #ccc;}
|
||||||
|
.liulangengduo{margin-top: 12px;}
|
||||||
|
.liulangengduo:hover{margin-top: 10px;box-shadow: 0px 0px 30px #ccc;}
|
||||||
|
/*xiangqing*/
|
||||||
|
.xiangqing{width: 100%;height: 58px;background: rgb(240,240,240);}
|
||||||
|
.xiangqing .neirong{height: 58px;width: 1226px;}
|
||||||
|
.xiangqing .neirong .xiaomi6{width:300px;height: 58px;line-height: 58px;font-size:
|
||||||
|
22px;font-weight: bold;}
|
||||||
|
.xiangqing .neirong nav{display:inline-block;width: 410px;height: 58px;line-height: 58px;}
|
||||||
|
.xiangqing .neirong nav li{font-size:14px;float: left;display: block;margin:0px 5px;}
|
||||||
|
.xiangqing .neirong nav li a{color: #333;font-size: 14px;}
|
||||||
|
.xiangqing .neirong nav li a:hover{color:#ff6700;}
|
||||||
|
/*jieshao*/
|
||||||
|
.jieshao{height: 560px; }
|
||||||
|
.jieshao .left{width:560px;height:560px;border:1px solid #ccc;}
|
||||||
|
.jieshao .right{width:620px;background: rgb(248,248,248);height: 600px;}
|
||||||
|
.jieshao .right .jianjie{font-size: 14px;color: rgb(176,176,176);line-height: 20px;}
|
||||||
|
.jieshao .right .jiage{font-size: 18px;color:#ff6700;font-weight: bold;}
|
||||||
|
.jieshao .right .xzbb{height: 58px;line-height:58px;}
|
||||||
|
.jieshao .right .xzbb .banben{height: 58px;line-height: 58px;width: 278px;cursor:pointer;margin-right: 5px;border:1px solid #bbb;}
|
||||||
|
.jieshao .right .xzbb .banben a{display:block;font-size: 18px;color:#000;padding:0 10px;}
|
||||||
|
.jieshao .right .xzbb .banben a span{display: inline-block;margin-right: 10px;}
|
||||||
|
.jieshao .right .xzbb .banben a:hover{color:#ff6700;}
|
||||||
|
.jieshao .right .xzbb .banben:hover{border:1px solid #ff6700;}
|
||||||
|
.jieshao .right .xzbb .banben a .yuandian{display: inline-block;height: 15px;width: 15px;border-radius: 50%;background: #000;margin-left: 80px;}
|
||||||
|
/*选取详情*/
|
||||||
|
.xqxq{height: 80px;width: 555px;background: rgb(255,255,255);padding:20px;}
|
||||||
|
/*是否下单*/
|
||||||
|
.xiadan{height: 50px;line-height: 50px;}
|
||||||
|
.xiadan .jrgwc{height: 50px;width: 200px;border:none;background:#ff6700;color:#fff;font-size: 18px;font-weight: bold;cursor:pointer;margin-right: 50px;}
|
||||||
|
.xiadan .jrgwc:hover{border:1px solid #fff;}
|
||||||
|
/*我的购物车*/
|
||||||
|
.banner_x .wdgwc{height: 100px;line-height: 100px;font-weight:bold;font-size: 24px;}
|
||||||
|
.banner_x .wxts{height: 90px;line-height: 105px;font-size: 12px;color:#777;}
|
||||||
|
.banner_x .dlzc{height: 100px;line-height: 100px;}
|
||||||
|
.banner_x .dlzc ul li{float: left;font-size: 12px;}
|
||||||
|
.banner_x .dlzc ul li a{display:block;padding:0 8px;font-size: 12px;font-family: Times New Roman;color: #777;}
|
||||||
|
.banner_x .dlzc ul li a:hover{color:#ff6700; }
|
||||||
|
.xiantiao{width: 100%;height: 2px;background:#ff6700; }
|
||||||
|
/*购物车详单*/
|
||||||
|
.gwcxqbj{width: 100%;height:400px;background: rgb(245,245,245);padding-bottom: 20px;}
|
||||||
|
.gwcxqbj .gwcxd{background: #fff;width: 1226px;height: auto;padding-top: 30px;}
|
||||||
|
.gwcxqbj .gwcxd .top2{width:1226px;height: 70px;}
|
||||||
|
.gwcxqbj .gwcxd .top2 .sub_top{width: 100px;height: 70px;line-height:36px;margin-right: 0px;margin-top:0px;margin-left: 30px;}
|
||||||
|
.gwcxqbj .gwcxd .top2 .sub_top:nth-of-type(2){margin-left: 100px;}
|
||||||
|
.gwcxqbj .gwcxd .top2 .sub_top:nth-of-type(3){margin-left: 300px;}
|
||||||
|
.gwcxqbj .gwcxd .top2 .sub_top:nth-of-type(4){margin-left: 60px;}
|
||||||
|
.gwcxqbj .gwcxd .top2 .sub_top:nth-of-type(5){margin-left: 60px;}
|
||||||
|
.gwcxqbj .gwcxd .top2 .sub_top .quanxuan{width:18px;height:18px;border:1px solid #ccc;background: none;}
|
||||||
|
.gwcxqbj .gwcxd .content2{width:1226px;height: 120px;border-top: 1px solid #ccc;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content{width:50px;height: 120px;line-height:120px;margin-right: 0px;}
|
||||||
|
.gwcxqbj .gwcxd .sub_content .quanxuan{width:18px;height:18px;border:1px solid #ccc;background: none;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content img{vertical-align: middle;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(1){margin-left: 30px;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(2){margin-left: 35px;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(3){margin-left: 55px;width: 330px;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(4){margin-left: 55px;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(5){margin-left: 115px;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(6){margin-left: 115px;color:#ff6700;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content:nth-of-type(7){margin-left: 145px;font-size: 25px;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content .shuliang{width: 70px;height: 35px;border:2px solid #ccc;text-align: center;font-size:16px;color:#ff6700;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content a{display: block;width: 20px;height: 20px;border-radius: 10px;color:#000;}
|
||||||
|
.gwcxqbj .gwcxd .content2 .sub_content a:hover{color:#ff6700;}
|
||||||
|
/*结算单*/
|
||||||
|
.jiesuandan{width:1226px;height: 50px;background: #fff;}
|
||||||
|
.jiesuandan .tishi{width: 400px;height: 50px;line-height: 50px;}
|
||||||
|
.jiesuandan .tishi ul li{float: left; font-size: 14px;display: inline-block;padding:0 10px;color:#666;}
|
||||||
|
.jiesuandan .tishi ul li a{color:#666;}
|
||||||
|
.jiesuandan .tishi ul li a:hover{color:#ff6700;}
|
||||||
|
.jiesuandan .tishi ul li span{display:inline-block;color:#ff6700;margin:0 4px;}
|
||||||
|
.jiesuandan .jiesuan{width: 500px;height: 50px;line-height: 50px;font-size: 14px;color:#ff6700;}
|
||||||
|
.jiesuandan .jiesuan .jiesuanjiage span{font-size: 24px;font-weight: bold;}
|
||||||
|
.jiesuandan .jiesuan .jsanniu .jsan{width: 200px;height: 50px;color:#fff;background:rgb(255,103,0); font-size: 20px;border:none;cursor:pointer;}
|
||||||
|
.jiesuandan .jiesuan .jsanniu .jsan:hover{background: rgb(242,88,7);}
|
||||||
|
/*个人中心*/
|
||||||
|
.grzxbj{width: 100%;height:auto;background: rgb(245,245,245);padding-bottom: 20px;padding-top: 20px;}
|
||||||
|
.grzxbj .selfinfo{width: 1226px;}
|
||||||
|
.grzxbj .selfinfo .lfnav{width: 234px;height: 500px;background: #fff;}
|
||||||
|
.grzxbj .selfinfo .lfnav .ddzx{width: 234px;height: 40px;line-height: 40px;font-size: 19px; margin:30px 20px 10px 40px;color:rgb(51,51,51);}
|
||||||
|
.grzxbj .selfinfo .lfnav .subddzx ul li{display: block;width: 194px;height: 40px;line-height: 40px;padding-left: 40px;}
|
||||||
|
.grzxbj .selfinfo .lfnav .subddzx ul li a{color:rgb(117,117,117);}
|
||||||
|
.grzxbj .selfinfo .lfnav .subddzx ul li a:hover{color:rgb(51,51,51);}
|
||||||
|
.grzxbj .selfinfo .rtcont{width: 978px;height: 500px;background: #fff;}
|
||||||
|
.grzxbj .selfinfo .rtcont .ddzxbt{width: 938px;height: 60px;line-height: 60px;font-size: 22px;font-weight:bold;color:rgb(117,117,117);padding-left: 40px;border-bottom: 1px solid #ccc;}
|
||||||
|
.grzxbj .selfinfo .rtcont .grzlbt{width:938px;height: 60px;line-height: 60px;font-size: 20px;color:rgb(117,117,117);}
|
||||||
|
.grzxbj .selfinfo .rtcont .subgrzl{height: 45px;line-height: 45px;width: 900px;background: rgb(253,253,253);border:1px solid #aaa;margin-top: 10px;margin-bottom: 10px;border-radius: 3px;}
|
||||||
|
.grzxbj .selfinfo .rtcont .subgrzl span:nth-of-type(1){display: inline-block;font-size: 15px;font-weight: bold;color:rgb(117,117,117);width: 70px;height: 45px;line-height: 45px;padding-left: 20px;}
|
||||||
|
.grzxbj .selfinfo .rtcont .subgrzl span:nth-of-type(2){display: inline-block;font-size: 15px;color:rgb(117,117,117);width: 480px;height: 45px;line-height: 45px;padding-left: 120px;
|
||||||
|
}
|
||||||
|
.grzxbj .selfinfo .rtcont .subgrzl span:nth-of-type(3){display: inline-block;font-size: 15px;width: 160px;height: 45px;line-height: 45px;text-align: right;}
|
||||||
|
.grzxbj .selfinfo .rtcont .subgrzl span a{color:teal; }
|
||||||
|
.grzxbj .selfinfo .rtcont .subgrzl span a:hover{color:#ff6700; }
|
||||||
|
|
||||||
|
/*订单中心*/
|
||||||
|
.grzxbj .selfinfo .rtcont .ddxq{width: 938px;height: 120px;line-height: 120px;font-size: 17px;color:rgb(117,117,117);
|
||||||
|
border-bottom: 1px solid #ccc;padding-left: 40px;}
|
||||||
|
.grzxbj .selfinfo .rtcont .ddxq .ddspt{width: 80px;height: 80px;margin: 19px 25px 0 0;border:1px solid #aaa;}
|
||||||
|
.grzxbj .selfinfo .rtcont .ddxq .ztxx ul li{display: inline-block;width: 130px;height: 60px;line-height:60px;float: left;border-left:1px solid #aaa; margin-top: 30px;text-align: center;}
|
||||||
|
.grzxbj .selfinfo .rtcont .ddxq .ztxx ul li a{color:rgb(117,117,117);}
|
||||||
|
.grzxbj .selfinfo .rtcont .ddxq .ztxx ul li a:hover{color:#ff6700;}
|
||||||
|
/*footer*/
|
||||||
|
footer{width: 100%;height: 120px;line-height: 30px;text-align: center;font-size: 12px;background: rgb(250,250,250);padding:30px 0;}
|
10
web/error/404.html
Normal file
10
web/error/404.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>错误页面</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
抱歉!你要的东西还没上车,稍等...
|
||||||
|
</body>
|
||||||
|
</html>
|
12
web/error/500.jsp
Normal file
12
web/error/500.jsp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<%@ 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=UTF-8">
|
||||||
|
<title>错误页面</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
抱歉!服务器正在努力加载...
|
||||||
|
</body>
|
||||||
|
</html>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user